Вычислить таблицу contentSize.height с пользовательскими ячейками разных типов iphone
В моем приложении табличное представление имеет разные типы пользовательских ячеек с разной высотой. Я хочу поместить представление под этим табличным представлением, для которого мне нужно вычислить высоту таблицы contentView, как я могу это сделать?
Раньше я делал это как: (noOfRows * cell_height), но это было для статических высот.
Thanx заранее.
Ответы
Ответ 1
UITableView является подклассом UIScrollView, поэтому вы можете использовать метод contentSize экземпляра в вашем представлении таблицы:
yourtableView.contentSize.height
Должна предоставить вам высоту представления содержимого в виде таблицы.
Ответ 2
Это старый вопрос, но сегодня я решил свою проблему с этим
func viewDidLoad() {
super.viewDidLoad()
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44 // >= 2
}
func getTableViewHeight() -> CGFloat{
tableView.reloadData()
tableView.layoutIfNeeded()
return tableView.contentSize.height + tableView.contentInset.bottom + tableView.contentInset.top
}
Ответ 3
У меня есть высота подсчета в viewDidLayoutSubviews() для контроллера представления контента. Работайте для меня (размеры ячеек таблицы размеров стола);
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews();
let height = table.contentSize.height+table.contentInset.bottom+table.contentInset.top
preferredContentSize = CGSize(width: 305, height: height);
}
Ответ 4
Верхний и нижний колонтитулы секции не учитываются в высоте таблицы, рассмотрите этот
CGSize sz = self.table.contentSize;
sz.height += self.table.contentInset.bottom +
self.table.contentInset.top +
self.table.numberOfSections * self.table.sectionHeaderHeight;
Ответ 5
Самое легкое, о чем я могу думать, - это установить ваше представление как таблицу tableFooterView
Ответ 6
Я думаю, что вы ищете self.view.bounds.size.height
.
Отъезд Подробный отчет Оливера Дробника о создании табличного представления для перезагрузки. В его случае это проще, потому что представление вверху, поэтому он проверяет наличие отрицательного содержимого.
Если вы хотите его внизу, вы можете проверить scrollView.contentOffset.y > (self.view.bounds.size.height + pullToReloadViewHeight)
Ответ 7
Если вы внедрили свои собственные пользовательские ячейки, вы, вероятно, уже внедрили эту функцию в своем делегате таблицы:
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
Просто перебирайте свои строки, вызывая эту функцию для каждого из них и суммируйте результат.