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

标签 ios uitextview nsattributedstring

我正在使用以下代码强制我的 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
}

我的 TextView 包含带有链接、粗体、斜体等的属性文本。

它有时效果很好,但在其他时候效果不佳。

我通过打印 textView.contentSize.height 发现,textView.contentSize.height 有时比它应该的要小得多。

我将该代码片段与普通文本一起使用,没有问题,所以我猜这是有关属性文本的问题。

我尝试谷歌搜索并尝试了这个和那个代码,但没有运气。

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

任何帮助将不胜感激。

提前致谢!

(虽然我更喜欢 swift,但我也可以阅读 Object-C 代码,因此也感谢 Object-C 的答案!!)

最佳答案

听起来您正在尝试制作一个可以调整高度以适合其内容的 TextView 。我就是这样做的:

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

在该代码中,self.tv是 TextView 和 self.heightConstraint是设置其高度的内部约束。

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

关于ios - 在 iOS 中,带有属性文本的 textview 的高度有时是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27873204/

相关文章:

iPhone : Unable to find following screen in in-app purchase

iphone - 使用 IOS 供应门户进行配置时出现问题?

iphone - 如何从界面生成器设置 uitextview 的垂直对齐

ios - 如何访问另一个 ViewController 上的 UITextView

ios - 更改 NSAttributedString html 链接颜色

cocoa - 如何格式化/着色 NSTextView 字符串的技术

javascript - Iphone,负边距导致滑出菜单中的位置漂移

ios - 在 XCode 5 中包含一个包

ios - 使用 TextView 更新自调整表格 View 单元格的高度

iOS 13 暗模式 : UIColor. 用于 NSAttributedString 时链接太暗