我使用以下代码
强制使用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
}
我的文本视图包含带有链接的boldText,粗体,斜体等等。
它有时很好用,但其他时候却没有。
我通过打印textView.contentSize.height来计算,textView.contentSize.height有时会比它应该小得多。
我使用普通文本的代码片段没有问题,所以我想这是关于attributionText的问题。
我尝试使用谷歌搜索并尝试了这段代码而没有运气。
当textView包含attributesText时,我应该如何测量textView的正确高度?
任何帮助将不胜感激。
提前致谢!
(虽然我更喜欢swift,但我也可以阅读Object-C代码,所以也非常感谢Object-C的答案!)
答案 0 :(得分:8)
听起来你正在尝试制作一个文本视图,其高度可以调整以适应其内容。我就是这样做的:
func adjustHeight() {
let sz = self.tv.sizeThatFits(CGSizeMake(self.tv.bounds.width, 10000))
self.heightConstraint.constant = ceil(sz.height)
}
在该代码中,self.tv
是文本视图,self.heightConstraint
是设置其高度的内部约束。
顺便提一句,您的代码存在重大问题。特别是:如果您使用约束,则不得使用frame
!约束对象的位置和大小;这就是它们的用途。