Как стать автором
Обновить

Комментарии 12

Неужели вы не видите, как некрасиво прорисованы углы ячеек?

Решение простое:

self.contentView.hidden = YES;
self.backgroundColor = [UIColor redColor];

При желании — добавляем нужный view с размерами self.contentView.frame:

[self addSubview:...]
Результат гораздо красивее (не успел найти скриншот за 3 минуты):

Спасибо, классный способ.

Не уверен правда как его применить в таких случаях:
1. Поменять фон выделенной ячейки
2. Ячейки рисуются в Interface Builder

Насчет углов – не заметил проблему на девайсе, в увеличении действительно заметно. Сейчас выложу исправленный вариант.
Навскидку могу предложить такой вариант:

1. В IB ячейке объявляется свой класс (который наследуется от UITableViewCell)
2. В IB в contentView добавляется еще один customView, который занимает весь размер contentView и в который добавляются все остальные элементы ячейки.
3. В методе initWithStyle:reuseIdentifier: нашего класса переносим наш customView из contentView, и скрываем последний.
4. Не забываем поставить прозрачный фон для customView
Мда, ну костыли еще те получаются в общем.

Я вот еще подумал, по идее можно в конструкторе перенести все подвью contentView в customView чтоб в IB не плодить сущности.
> Неужели вы не видите, как некрасиво прорисованы углы ячеек?

Обновил код, теперь должно рисовать правильно
А если есть Accessory (не своя AccessoryView), как и у неё тоже поменять цвет?
В случае с accessory самый простой способ таки установить accessoryView в UIImageView с картинкой или UIButton (если нужно чтоб можно было ловить нажатия).
При выделении достаточно установить аналогично selectedBackgroundView.
К счастью обычно в группированом UITableView не нужно перестаскивание :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации