Странная прокрутка 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

0 ответов

Другие вопросы по тегам