在 iOS 中,带有属性文本的 textview 的高度有时是错误的
The height of textview with attributed text is wrong sometimes in 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
}
我的文本视图包含带有链接、粗体、斜体等的属性文本..
有时效果很好,但有时效果不佳。
我通过打印 textView.contentSize.height 计算出 textView.contentSize.height 有时比它应该的小得多。
我使用带有普通文本的代码片段没有问题,所以我猜这是关于 attributedText 的问题。
我尝试使用谷歌搜索并尝试了这个那个代码,但没有成功。
当包含 attributedText 时,如何测量 textView 的正确高度?
任何帮助将不胜感激。
提前致谢!
(虽然我更喜欢 swift,但我也可以阅读 Object-C 代码,因此也感谢 Object-C 答案!!)
听起来您正在尝试创建一个可以调整高度以适合其内容的文本视图。我是这样做的:
func adjustHeight() {
let sz = self.tv.sizeThatFits(CGSizeMake(self.tv.bounds.width, 10000))
self.heightConstraint.constant = ceil(sz.height)
}
在该代码中,self.tv
是文本视图,self.heightConstraint
是设置其高度的内部约束。
顺便说一句,您的代码存在重大问题。特别是:如果您正在使用约束,则不得使用 frame
!约束对象的位置和大小;这就是他们的目的。
我使用以下代码强制我的 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.contentSize.height 计算出 textView.contentSize.height 有时比它应该的小得多。
我使用带有普通文本的代码片段没有问题,所以我猜这是关于 attributedText 的问题。
我尝试使用谷歌搜索并尝试了这个那个代码,但没有成功。
当包含 attributedText 时,如何测量 textView 的正确高度?
任何帮助将不胜感激。
提前致谢!
(虽然我更喜欢 swift,但我也可以阅读 Object-C 代码,因此也感谢 Object-C 答案!!)
听起来您正在尝试创建一个可以调整高度以适合其内容的文本视图。我是这样做的:
func adjustHeight() {
let sz = self.tv.sizeThatFits(CGSizeMake(self.tv.bounds.width, 10000))
self.heightConstraint.constant = ceil(sz.height)
}
在该代码中,self.tv
是文本视图,self.heightConstraint
是设置其高度的内部约束。
顺便说一句,您的代码存在重大问题。特别是:如果您正在使用约束,则不得使用 frame
!约束对象的位置和大小;这就是他们的目的。