Мне нужно получить полную высоту UITableView (т.е. высоту, по которой больше нечего будет прокручивать). Есть ли способ сделать это?
Я пробовал [tableView sizeThatFits:CGSizeZero], но это возвращает 0x0 CGSize.
Ответ 1
Попробуйте метод contentSize, который наследуется от суперкласса UITableViews, UIScrollView. Однако вы можете обнаружить, что contentSize возвращает неправильное или устаревшее значение, поэтому сначала вы должны сначала вызвать layoutIfNeeded, чтобы пересчитать раскладку таблиц.
var tableViewHeight: CGFloat {
tableView.layoutIfNeeded()
return tableView.contentSize.height
}
Ответ 3
Если число строк таблицы просмотра изменилось, и вам действительно нужно знать размер содержимого представления таблицы, включающий последние изменения, я не нашел, что метод layoutIfNeeded действительно помогает.
После небольшого взлома я узнаю, как заставить табличное представление пересчитать его размер содержимого. В моем случае достаточно reset рамки представления таблицы, чтобы заставить его работать:
Попробуйте передать другой CGSize параметр вместо CGSizeZero. Метод sizeThatFits: использует этот параметр для вычисления его результата. Попробуйте передать в self.view.size из любого класса, который делает этот вызов.