2014-12-02 6 views
0

Т.Л., д-р: Я действительно хотел бы установить все от свойств заголовка секции, в том числе его высоту, в раскадровке. Есть ли способ, которым я могу это сделать?автоматическая высота - [Tableview: heightForHeaderInSection:]

В API CocoaTouch есть что-то, что я никогда не смог бы преодолеть.

UITableViewDelegate содержит метод, называемый -[tableView:heightForHeaderInSection:], который должен возвращать соответствующую высоту для заголовка в разделе.

Рекомендации, которые я знаю, советуют разделить презентацию и логику. Тем не менее, UITableViewDelegate, похоже, смешивает эти два понятия: он обрабатывает взаимодействие (didSelect...) и некоторые аспекты презентации (heightForHeader...).

Кроме того, я часто определяю заголовки разделов в раскадровках, поэтому делает так, чтобы раскадровка и (как правило) контроллер представления были очень взаимозависимы для заголовков разделов.

Есть ли способ узнать высоту в общем виде или просто сделать этот метод «автоматическим»? Я использовал заголовок раздела и возвращал его высоту, но на самом деле это проблема производительности, когда есть много заголовков разделов.

ответ

0

вы должны нарисовать произвольный заголовок в этом методе tableView:heightForHeader и вернуть высоту этого произвольного заголовка, чтобы получить размер динамического заголовка. это сработало для меня. надеюсь, что это сработает и для вас.

0

Accidentally нашел его сегодня утром :)

  1. В раскадровке, выберите TableView.
  2. На панели инспектора (справа на Xcode) выберите вкладку «Измерения».
  3. На этой вкладке вероятность того, что первая секция «tableview» будет свернута. Развернуть его
  4. установить высоту соответствующего заголовка раздела

И удалить -[tableView:heightForSectionHeader:] \ о/

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