在iOS中,带有属性文本的textview的高度有时是错误的

kwm*_*eng 1 uitextview nsattributedstring ios

我用以下代码强制我的textview的高度约束

func setHeightConstraint(textView: UITextView) {
    textView.sizeToFit()
    textView.layoutIfNeeded()

    var newFrame:CGRect=textView.frame
    newFrame.size.height=textView.contentSize.height
    textView.frame=newFrame
    println(textView.contentSize.height)
    textViewHeightConstraints.constant=textView.contentSize.height
}
Run Code Online (Sandbox Code Playgroud)

我的文本视图包含带有链接的boldText,粗体,斜体等等.

它有时效果很好,但在其他时候却没有.

我通过打印textView.contentSize.height来计算,textView.contentSize.height有时比它应该小得多.

我使用普通文本的代码片段没有问题,所以我想这是关于attributionText的问题.

我尝试使用谷歌搜索并尝试了这个代码没有运气.

当它包含attributesText时,我应该如何测量textView的正确高度?

任何帮助将不胜感激.

提前致谢!

(我也可以阅读Object-C代码,虽然我更喜欢swift,所以对象-C答案也很受欢迎!!)

mat*_*att 9

听起来你正在尝试制作一个文本视图,其高度可以调整以适应其内容.我是这样做的:

func adjustHeight() {
    let sz = self.tv.sizeThatFits(CGSizeMake(self.tv.bounds.width, 10000))
    self.heightConstraint.constant = ceil(sz.height)
}
Run Code Online (Sandbox Code Playgroud)

在该代码中,self.tv是文本视图,self.heightConstraint是设置其高度的内部约束.

顺便说一下,你的代码存在重大问题.特别是:如果您使用约束,则不得使用frame!约束对象的位置和大小; 这就是他们的意思.