Странная прокрутка UITableView во время прокрутки и изменения высоты ячейки выполняются
У меня есть UITableView с большим количеством ячеек. В ячейках с UITextField я прокручиваю таблицу, если клавиатура скрывает текстовое поле. И к некоторым ячейкам я добавил изменение высоты ячейки в свиток. Это хорошо работает в начале и в середине таблицы, но если рассматриваемая ячейка находится внизу таблицы, я получаю странные прыжки и исчезновение ячеек. После того, как пользователь завершил редактирование, высота ячейки возвращается к нормальной и исчезнувшие ячейки появляются снова, но таблица прокручивается немного вверх. Мой вопрос сейчас, как я могу избавиться от этого прыжка и исчезновения клеток?
Вот мой код:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if fieldIndex != [-99, -99] {
if indexPath.section == fieldIndex[0] && indexPath.row == fieldIndex[1] {
fieldIndex = [-99, -99]
return 220.0
}
}
return 80.0
}
func keyboardWillBeShown(_ sender: Notification) {
let info: NSDictionary = (sender as NSNotification).userInfo! as NSDictionary
let value: NSValue = info.value(forKey: UIKeyboardFrameBeginUserInfoKey) as! NSValue
let keyboardSize: CGSize = value.cgRectValue.size
let height = toolBar.frame.height
let contentInset: UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardSize.height + toolBar.frame.height + 60, 0.0)
originalIntersect = tableView.contentInset
tableView.contentInset = contentInset
tableView.scrollIndicatorInsets = contentInset
var aRect: CGRect = self.view.frame
aRect.size.height -= keyboardSize.height
}
func keyboardWillBeHidden(_ sender: Notification) {
let insets: UIEdgeInsets = UIEdgeInsetsMake(self.tableView.contentInset.top, 0, 0, 0)
tableView.contentInset = originalIntersect
tableView.scrollIndicatorInsets = originalIntersect
}
Если есть другой код, который вы должны увидеть, чтобы помочь, просто спросите.
С уважением и благодарностью Adarkas