#ios #objective-c #autolayout #tableview
#iOS #objective-c #автоматическое описание #tableview
Вопрос:
Я использую пользовательское представление в качестве TableView в tableHeaderView . Он содержит некоторый StackView и некоторые многострочные метки
и поскольку я использую это пользовательское представление в качестве tableHeaderView , поэтому я должен указать для него высоту так же, как я делал тысячу раз до этого.
Как указано в приведенном выше коде, я должен вручную рассчитать высоту метки, используя sizeThatFit и так далее.
Но иногда я спрашиваю своих коллег по веб-разработке о том, как они разрабатывают такие страницы, то же самое происходит в веб-разработке, которая содержит так много вычислений вручную, они говорят, что при веб-разработке такой страницы будет проще, не будет такого ручного вычисления.
Итак, я думаю, может быть, есть какой-нибудь более современный способ получить высоту пользовательского представления, чтобы избежать стольких утомительных работ.
Ответ №1:
Да, вы можете использовать UITableViewAutomaticDimension
, чтобы получить динамическую высоту для вашего пользовательского представления.
Просто добавьте это в viewDidLoad:
self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension;
self.tableView.estimatedSectionHeaderHeight = XX; // estimated height
Нет необходимости внедрять heightForHeaderInSection
Комментарии:
1. Я думаю, что UITableViewAutomaticDimension будет работать только с UITableViewCells? будет ли это также работать с tableHeaderView?
2. Да, это возможно.
3. спасибо, но в моей ситуации пользовательское представление используется как tableHeaderView, а не как заголовок раздела, в моем предыдущем тесте UITableViewAutomaticDimension не работает с tableHeaderView
4. Я думаю, вам может потребоваться пересмотреть ограничения в вашем customview, если вышеупомянутое решение не работает.
5. что означает «пересмотреть»? перестроить?