Я создаю динамический TableView и устанавливаю ячейку с высотой строки 44 в раскадровке. Таким образом, высота таблицы будет зависеть от количества строк, которые моя база данных возвращает в соответствии с результатами. В то же время я подключаю нижнее ограничение tableView к представлению с помощью IBOutlet. Таким образом, высота табличного представления не будет перекрывать клавиатуру и сохранять некоторое расстояние с некоторой конфигурацией. Мой вопрос: как я могу обновить tableView.frame.size.height с помощью sizeToFits() в iOS 10 и ниже?
Вот несколько журналов с более четким изображением, размером tableView и contentView для iOS 10.
Другое изображение, когда sizetofit() табличного представления никогда не увеличивается от меньшего к большему. Другие журналы полностью исчезнут, если моя база данных вернет 0 результатов, а затем для contentSize будет 0,0, а затем, когда я попытаюсь удалить некоторые тексты, contentSize вернется к 44, потому что получил 1 результат из базы данных, и по праву SizeToFit() будет соответствовать размеру на основе contentSize. Но в этом случае он по-прежнему остается с 0.0 и никогда не обновляется.
Изображение для iOS 11, размер tableView и contentView для iOS 11, высота табличного представления с 632 правильно, потому что я установил некоторую автоматическую раскладку, чтобы предотвратить вмешательство в клавиатуру, чтобы пользователь мог прокручивать вниз в tableView.
Некоторые коды для лучшего понимания,
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// configuration for tableViewCell.
tableView.sizeToFit() // WORKs for iOS 11 but doesn't update for iOS10
if UIDevice.current.userInterfaceIdiom == .pad {
tableView.setNeedsLayout()
tableView.layoutIfNeeded()
cell.backgroundColor = UIColor.darkGray
}
return cell
}