Статический нижний колонтитул в iOS

Im Глядя, чтобы мой нижний колонтитул Float над табличным представлением Так, чтобы он всегда был видимым, и не только при прокрутке вниз.

Я попытался изменить размер таблицы с помощью этого кода:

- (id)initWithStyle:(UITableViewStyle)style { if ((self = [super initWithStyle: style])) { UIView *footer = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 1, 45)]; footer.backgroundColor = [UIColor clearColor]; self.tableView.tableFooterView = footer; self.tableView.frame = CGRectMake(0, 0, 320, 100); footer.hidden = NO; } 

Мне до сих пор не повезло.

Я также пробовал использовать другие окна и изменять размер всех файлов .XIB.

4 Solutions collect form web for “Статический нижний колонтитул в iOS”

Свойство tableFooterView UITableView – это объект UIView который всегда отображается внизу содержимого ниже последнего раздела. Даже если это не совсем ясно в документации Apple (извлечение: «Возвращает вспомогательный вид, который отображается под таблицей»).

Если вы хотите, чтобы нижний колонтитул был статичным и не плавающим, у вас есть два простых варианта:

  • Не идеально, но просто: используйте нижний колонтитул последнего раздела как ваш статический нижний колонтитул. Это будет работать при некоторых условиях:
    • ваш стиль UITableView должен быть UITableViewStylePlain (поскольку UITableViewStyleGrouped дает такое же поведение в заголовках / UITableView tableHeaderView колонтитулах UITableView tableHeaderView и в tableFooterView UITableView tableHeaderView и tableFooterView
    • Вы не сможете использовать нижний колонтитул последнего раздела для своей реальной цели: предоставление информации нижнего колонтитула в определенном разделе

Вот простой пример:

 - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { UIView *view = nil; if (section == [tableView numberOfSections] - 1) { // This UIView will only be created for the last section of your UITableView view = [[UIView alloc] initWithFrame:CGRectZero]; [view setBackgroundColor:[UIColor redColor]]; } return view; } 
  • Лучшее решение прямо сейчас: Добавьте UIView (либо в код, либо в свой XIB) на том же уровне, что и UITableView . Одно небольшое условие:
    • Свойство self.view вашего UIViewController не должно быть вашим объектом UITableView . Это означает, что вы не можете подклассифицировать UITableViewController но UIViewController и сделать ваш контроллер совместимым с протоколами UITableViewDataSource и UITableViewDelegate . Это на самом деле проще, чем выглядит, и улучшает реализацию (насколько мне известно), чем использование непосредственно UITableViewController .

Вот простой пример в коде (но вы можете сделать то же самое с помощью Interface Builder):

ViewController.h:

 #import <UIKit/UIKit.h> @interface ViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> @end 

ViewController.m:

 #import "ViewController.h" @interface ViewController () @property (strong, nonatomic) UITableView *tableView; @property (strong, nonatomic) UIView *fixedTableFooterView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; CGFloat fixedFooterHeight = 200.0; // Initialize the UITableView CGRect tableViewFrame = CGRectMake(CGRectGetMinX(self.view.bounds), CGRectGetMinY(self.view.bounds), CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds) - fixedFooterHeight); self.tableView = [[UITableView alloc] initWithFrame:tableViewFrame style:UITableViewStylePlain]; // or Grouped if you want... [self.tableView setDataSource:self]; [self.tableView setDelegate:self]; [self.view addSubview:self.tableView]; // Initialize your Footer CGRect footerFrame = CGRectMake(CGRectGetMinX(self.view.bounds), CGRectGetMaxY(self.view.bounds) - fixedFooterHeight, CGRectGetWidth(self.view.bounds), fixedFooterHeight); // What ever frame you want self.fixedTableFooterView = [[UIView alloc] initWithFrame:footerFrame]; [self.fixedTableFooterView setBackgroundColor:[UIColor redColor]]; [self.view addSubview:self.fixedTableFooterView]; } - (void)viewDidUnload { [super viewDidUnload]; [self setTableView:nil]; [self setFixedTableFooterView:nil]; } @end 

Вы также можете указать маску UIViewAutoresizing чтобы она работала плавно в портретной и альбомной UIViewAutoresizing но я не усложнил этот довольно простой код.

ПРЕДУПРЕЖДЕНИЕ: Эти файлы .h и .m не будут компилироваться, поскольку я не использовал требуемые методы UITableViewDataSource . Прокомментируйте setDataSource: если вы хотите увидеть ее в действии.

Надеюсь, это поможет,

Не стесняйтесь спрашивать меня о других деталях,

Попробуйте это, он будет держать ваш взгляд всегда в нижней части представления:

 footerView.transform = CGAffineTransformMakeTranslation(0, scrollView.contentOffset.y) 

Вы можете добавить UIView под UITableView, и он будет всегда виден.

Если вам нужно много настроек, просто добавьте UITableView в UIViewController вместо использования UITableViewController.

Очень хакерское решение, но это будет работать:

 UIWindow *keyWindow = [[[UIApplication sharedApplication] delegate] window]; [keyWindow.viewForBaselineLayout addSubview:footer]; 

Остерегайтесь, это скроет все в вашем главном окне, что оно будет перекрываться.

  • Attributed string в tableviewcell не отображает жирный текст, пока ячейка не будет отменена и перезагружена
  • Установить данные для статических ячеек UITableView
  • Как вызвать метод «willDisplayFooterView» во время просмотра cusomization Table View?
  • iOS - другой поток должен отправить reloadData в mainthread
  • Почему добавление изображения в панель навигации в раскадровке удаляет навигационную панель?
  • Alloc - добавить в качестве аксессуарПросмотр: утечка?
  • iOS 7.0 и ARC: UITableView никогда не освобождается после анимации строк
  • Вкладка нижнего разделителя UITableView - странное поведение в IOS 7
  • Отображение поисковой панели только тогда, когда пользователь вытаскивает таблицу
  • iOS - событие Delayed «Touch Down» для UIButton в UITableViewCell
  • Капля тени ячейки UITableView меняет положение после прокрутки таблицы
  • Interesting Posts

    Taptic в iOS 9

    Способ получения отзывов пользователей для iPhone?

    Создайте круг с несколькими цветами

    Несколько строк текста отображаются после щелчка сегмента UISegmentedControl, но не изначально – ОБНОВЛЕННЫЙ КОД

    Как получить идентификатор электронной почты пользователя, используя facebook sdk 4.7 в ios 9

    Веселые ошибки с использованием MPMoviePlayerViewController

    Черная область на UIWebView во время загрузки

    Как слушать события календаря, когда приложение в фоновом режиме iOS?

    Как отлаживать terminate_handler неожиданно бросил исключение?

    Ошибка Xcode с кодом выхода 254

    iOS, Как найти выбранную строку UITableView?

    Почему строки размером менее 1.0pts не отображаются правильно на экранах с сеткой сетчатки?

    Objective-C – Отмена потока?

    iTunes Connect – Получить активные пользовательские установки по версии приложения

    Objective-c Internals для NSArray и NSMutableArray

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.