1

我正在尝试使用委托调用UITextView根据其内容的大小更改 a 的高度。textViewDidChange但是在输入第一行时文本会向上推一点,并在输入下一行时将其更正到旧位置,对于添加的每个备用行,这都会不断重复。

func textViewDidChange(textView: UITextView!) {
    var computedHeightDifference = textView.contentSize.height - textView.frame.size.height
    if(computedHeightDifference != 0){
        textView.frame.size.height = textView.contentSize.height
    }

}

我尝试使用textView.sizeToFit()而不是完整块,但是添加每一行时文本视图会闪烁(在电话应用程序中添加新联系人时,可以在注释字段中注意到相同的行为。

我已经在GitHub 上上传了完整的代码 进入第一行时 在添加另一行时

4

1 回答 1

3

您没有将高度设置得足够大。您需要考虑文本容器的插图。

做这个:

func textViewDidChange(textView: UITextView!) {
    var computedHeightDifference = textView.contentSize.height - (textView.frame.size.height + textView.textContainerInset.top + textView.textContainerInset.bottom)
    if(computedHeightDifference != 0){
        textView.frame.size.height = textView.contentSize.height + textView.textContainerInset.top + textView.textContainerInset.bottom
    }

}
于 2014-10-29T07:49:44.667 回答