UITextView переходит с каждого символа, введенного при обновлении метки в shouldChangeTextIn - PullRequest
0 голосов
/ 24 сентября 2019

У меня на UITextView ниже, что я обновляю метку, показывающую количество символов, набранных в shouldChangeTextIn.Я разрешаю прокрутку в textViewDidChange при достижении определенной высоты.Когда прокрутка включена после достижения определенной высоты, любой текст, набранный после этого, вызывает UITextView прыжок.Я сузил эту проблему до обновления метки в shouldChangeTextIn.Как исправить эту проблему?Действительно ли эта проблема вызвана обновлением метки или что-то еще вызывает эту проблему?Как его отладить?

Анимация Gif

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {

    let startingLength = textView.text?.count ?? 0
    let lengthToAdd = text.count
    let lengthToReplace = range.length

    let newLength = startingLength + lengthToAdd - lengthToReplace

    if newLength <= self.maxChars {
        self.updateMaxCharacterText(newLength: newLength)
    }

    return newLength <= self.maxChars
}

func updateMaxCharacterText(newLength: Int) {
    maxCharLabel.text = String(newLength) + "/" + String(self.maxChars)
}
...