Увеличьте высоту ячейки uitableview при наборе текста и избегайте клавиатуры - PullRequest
0 голосов
/ 16 октября 2018

У меня есть таблица с textview.Я хочу установить высоту tableviewcell в соответствии с содержимым uitextview при наборе текста, а также, если клавиатура скрывает таблицу прокрутки uitexview.

Ниже приведен код для увеличения высоты ячейки в соответствии с содержимым

func updateCellHeight(indexPath: NSIndexPath, comment: String,textview: UITextView) {

    let tempDict = arrayTexts[indexPath.row] as! NSMutableDictionary
    tempDict.setValue(comment, forKey: "content")
    arrayTexts[indexPath.row] = tempDict
    self.tblFields.beginUpdates()
    self.tblFields.endUpdates()


}

Приведенный выше код работает, но не избегает клавиатуры

Ниже приведен код для избежания клавиатуры

func textviewBeginEditing(textview: UITextView) {
    let contentInsets = UIEdgeInsets(top: 0, left: 0, bottom: keyboardHeight, right: 0)

    self.tblFields.contentInset = contentInsets
    self.tblFields.scrollIndicatorInsets = contentInsets

    // If active text field is hidden by keyboard, scroll it so it's visible
    // Your app might not need or want this behavior.
    var aRect = self.view.frame
    aRect.size.height -= keyboardHeight

    if !aRect.contains(textview.frame.origin) {
        self.tblFields.scrollRectToVisible(textview.frame, animated: false)
    }

}

Приведенный выше код иногда избегает ввода с клавиатуры, а иногда нет, но просмотр таблицы постоянно прокручивается при наборе текста и не работает должным образом.В чем моя ошибка?

1 Ответ

0 голосов
/ 20 октября 2018

Удалить код из функции textviewBeginEditing и добавить следующий код

func updateCellHeight(indexPath: NSIndexPath, comment: String, textview: UITextView) {

    let tempDict = arrayTexts[indexPath.row] as! NSMutableDictionary
    tempDict.setValue(comment, forKey: "value")
    arrayTexts[indexPath.row] = tempDict

    if textview.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height != textview.frame.size.height {

        UIView.setAnimationsEnabled(false)
        self.tblFields.beginUpdates()
        self.tblFields.endUpdates()
        UIView.setAnimationsEnabled(true)

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...