Подтвердить что ты не робот

Вычислить таблицу contentSize.height с пользовательскими ячейками разных типов iphone

В моем приложении табличное представление имеет разные типы пользовательских ячеек с разной высотой. Я хочу поместить представление под этим табличным представлением, для которого мне нужно вычислить высоту таблицы contentView, как я могу это сделать?

Раньше я делал это как: (noOfRows * cell_height), но это было для статических высот.

Thanx заранее.

4b9b3361

Ответ 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

Просто перебирайте свои строки, вызывая эту функцию для каждого из них и суммируйте результат.