Добро пожаловать в Stackoverflow!
Вы определенно можете получить contentSize
и получить высоту вашего tableView. Я использую этот метод и работает каждый раз.
Один из способов сделать это - добавить наблюдателя, например:
tableView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil)
, а затем переопределить метод вашего контроллера, observeValue
, вот так:
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if let obj = object as? UITableView {
if obj == self.tableView && keyPath == "contentSize" {
if let newSize = change?[NSKeyValueChangeKey.newKey] as? CGSize {
let height = newSize.height // <----- your height!
}
}
}
}
Чтобы добавить, возможно, было бы лучше, если бы в вашем методе viewWillDisappear
или deinit
удалили этого наблюдателя.