UITextView的动态高度在IOS 13中不起作用

时间:2019-12-29 10:09:56

标签: ios swift ios13 swift5

我尝试创建一个具有动态高度的TextView,当文本更改为内容大小为4行(高度等于92dp)时,文本大小不会继续增加,而当我删除文本时,高度也会更改。它可以在ios 12.4中正常工作,但不能在ios 13中工作。

我自动设置高度为<= 92的文本字段。

这是我的代码:

extension MyView: UITextViewDelegate {

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

    if text == breakLineCharacter {
        textView.resignFirstResponder()
    }
    let newText = (textView.text as NSString).replacingCharacters(in: range, with: text)
    let numberOfChars = newText.count
    return numberOfChars < limitTitleCharacter
}

func textViewDidChange(_ textView: UITextView) {

    if textView.text.contains(breakLineCharacter) {
        textView.text = textView.text.replacingOccurrences(of: breakLineCharacter, with: spaceCharacter)
    }

    if textView.contentSize.height >= CGFloat(textViewMaxHeight) {
        textView.isScrollEnabled = true
    } else {
        if textView.text == emptyString {
            textView.frame.size.height = CGFloat(textViewMinHeight)
            textView.isScrollEnabled = false
        } else {
            textView.frame.size.height = textView.contentSize.height
            textView.isScrollEnabled = false
        }
    }
    print(textView.frame.size.height)
}

}

这是“打印”行的结果

当我删除所有内容时

Screen Shot

IOS 13.2动态高度无效

Screen Shot

IOS 12.4正在运行

Screen Shot

0 个答案:

没有答案