it-swarm.com.ru

Разделитель UITableViewCell не отображается

Я сделал пользовательский UITableViewCell в IB, но по какой-то причине, несмотря на то, что в качестве разделителя выбран однострочный параметр, в моей таблице нет разделительных линий.

Это случалось с кем-то из вас раньше? Что дает?

Спасибо!

28
DexterW

Связан ли UITableViewCell в IB с подклассом UITableViewCell, который переопределяет drawRect:? Если это так, убедитесь, что вы вызываете супер реализацию, так как именно это рисует линию внизу. Если вы переопределяете layoutSubviews, убедитесь, что никакие представления не закрывают нижнюю часть ячейки.

50
Brian

Просто хедз-ап, хотя это старый пост:

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

Измените это, перейдя в Window-> Scale-> 100%

53
LPace

В моем случае я забыл вызвать [super layoutSubviews] после переопределения метода layoutSubviews. Мне потребовалось два часа, чтобы найти проблему.

25
Maciej Swic

в моем случае я должен установить свойство separatorStyle tableView

tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;

2
pinux

Я нашел separatorStyle в ссылка на класс UITableView . Он говорит, что добавит separatorStyle в ячейку, возвращаемую методом делегата, tableView: cellForRowAtIndex: .

Итак, я думаю, что вы должны изменить свойство стиля в экземпляре UITableView.

1
AechoLiu

Для всех, кто видел это: моя проблема заключалась в том, что у меня было несколько разделов, а в первой ячейке каждого раздела не было разделителя. В моем табличном представлении я переписал функцию heightForHeader (возвращая 0). Удаление это решило проблему.

0
Mavrick Laakso

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

У меня есть собственный UITableView под названием AddressBookTableView, и он включен в .XIB для одного из моих контроллеров представления. Я заметил, что он был добавлен в виде элемента UIView с пользовательским классом, указанным как AddressBookTableView. Я удалил этот элемент и добавил вместо него элемент UITableView, класс которого я снова указал как AddressBookTableView, и разделители волшебным образом появились снова!

Мне понадобилось очень много времени, чтобы найти это ...

Убедитесь, что ваши пользовательские элементы UITableView .XIB действительно являются пользовательскими элементами UITableView, НЕ переименованными в элементы UIView.

Честно говоря, я удивлен, что единственным заметным артефактом этой ошибки было отсутствие разделителей. Кроме этого UITableView по-прежнему функционировал нормально?

0
alexgophermix

Если вы программно добавляете подпредставления в свою ячейку, убедитесь, что вы добавили подпредставления 

в cell.contentView и НЕ в cell

[cell.contentView addSubview:subview];
0
Offek