2013-03-16 1 views
11

Я использую UITableView с пользовательской ячейкой.
Он работает нормально, но проблема в том, что в UITableView есть только одна или две ячейки.
Он также предоставляет разделитель для пустой ячейки.
Можно ли отображать разделитель только для ячейки, которая загружается с моей пользовательской ячейкой?Дисплей Сепаратор только для доступного CellForRow в UITableView

ответ

23

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

Swift 3.x:

В вашем viewDidLoad()

self.tblPeopleList.tableFooterView = UIView.init() 

Objective-C:

Самый простой способ:

в методе viewDidLoad,

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

или

self.yourTableView.tableFooterView = [UIView new]; 

или

Если вы хотите, чтобы настроить внешний вид зрения колонтитула, вы можете сделать это, как это.

UIView *view = [[UIView alloc] initWithFrame:self.view.bounds]; 
view.backgroundColor = [UIColor redColor]; 
self.yourTableView.tableFooterView = view; 

//OR add an image in footer 
//UIImageView *imageView = [[UIImageView alloc] initWithImage:footerImage.png] 
//imageView.frame = table.frame; 
//self.yourTableView.tableFooterView = imageView; 

Другой способ:

Реализовать метод источника данных таблицы,

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { 
    return [UIView new]; 
} 

Это то же самое, но здесь вы можете добавить различные представления для каждого раздела, если таблица имеет несколько разделов. Даже вы можете установить разную высоту каждой секции с помощью этого метода, - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {...}.

Объектив-C Ответ Примечание: Этот ответ протестирован для iOS7 и выше, для предыдущих версий вы должны проверить каждый случай. Swift Ответ Примечание: Этот ответ протестирован для iOS10.3 и выше, для предыдущих версий вы должны проверить каждый случай.

7

Другое решение:

UIView *v = [[UIView alloc] initWithFrame:CGRectZero]; 
v.backgroundColor = [UIColor clearColor]; 
[self.tableView setTableFooterView:v]; 

Это тоже работает

self.tableView.tableFooterView = [UIView new]; 
2

Поместите этот мир кода в viewDidLoad

self.tblTest.tableFooterView = [[UIView alloc] initWithFrame : CGRectZero]; 
+0

Этот код прекрасно работает в обоих прошивкой 7 и 8. вам не нужно очищать цвет фона. – Jemythehigh

Смежные вопросы