ios - tutorial - uitableviewdatasource swift 4




Как удалить пустые ячейки в UITableView? (8)

На этот вопрос уже есть ответ:

Я пытаюсь отобразить простой UITableView с некоторыми данными. Я хочу установить статическую высоту UITableView чтобы она не отображала пустые ячейки в конце таблицы. как я это сделал?

код:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSLog(@"%d", [arr count]);
    return [arr count];
}

in viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

В Раскадке выберите UITableView и измените свойство Style из Plain в Grouped .


Установите нижний колонтитул таблицы высоты ноль (возможно, в вашем методе viewDidLoad ), например:

Swift:

tableView.tableFooterView = UIView()

Objective-C:

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

Поскольку таблица считает, что есть нижний колонтитул, он не отображает никаких ячеек, кроме тех, которые вы явно просили.

Провайдер интерфейсного конструктора:

Если вы используете xib / Storyboard , вы можете просто перетащить UIView (с высотой 0pt) в нижнюю часть UITableView.


Я пробовал код:

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

В разделе viewDidLoad и xcode6 показано предупреждение. Я поставил «я». перед ним, и теперь он отлично работает. поэтому рабочий код, который я использую:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

или вы можете вызвать метод tableView, чтобы установить высоту нижнего колонтитула в 1 точку, и она добавит последнюю строку, но вы также можете скрыть ее, установив цвет фона нижнего колонтитула.

код:

func tableView(tableView: UITableView,heightForFooterInSection section: Int) -> CGFloat {
     return 1
}

выглядит как последняя строка


На данный момент я не могу добавить комментарий, поэтому добавляю это как ответ.

@ Ответ Энди хороший, и те же результаты могут быть достигнуты с помощью следующей строки кода:

tableView.tableFooterView = [UIView new];

«новый» метод относится к классу NSObject и вызывает методы alloc и init для UIView.


Синтаксис Swift 3:

tableView.tableFooterView = UIView(frame: .zero)

Синтаксис Swift: <2.0

tableView.tableFooterView = UIView(frame: CGRect.zeroRect)

Синтаксис Swift 2.0:

tableView.tableFooterView = UIView(frame: CGRect.zero)

override func viewWillAppear(animated: Bool) {
    self.tableView.tableFooterView = UIView(frame: CGRect.zeroRect)

/// OR 

    self.tableView.tableFooterView = UIView()
}




uitableview