我尝试创建一个具有动态高度的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)
}
}
这是“打印”行的结果
当我删除所有内容时
IOS 13.2动态高度无效
IOS 12.4正在运行