[英]How to get UITextView height according to content in iOS 9
我正在使用UITextView
显示一些数据。 我需要根据其内容计算UITextView
的高度。 我已经尝试过contentSize.height
,但是对我来说不起作用。 有人对此有解决方案吗? 这是我使用AutoLayout的代码。 我已经设置了出口的高度限制
CGFloat height= _myTextView.contentSize.height;
_heightConstraint.constant = height;
首先使用以下内容将文本视图调整为内容大小:
[yourtTextView sizetofit];
然后使用以下方法获取视图的高度:
double textViewHeight = yourtTextView .frame.size.height;
您可以使用以下方法计算出文字的高度,非常适合我:
CGSize maximumTextViewSize = CGSizeMake(textView.frame.size.width, CGFLOAT_MAX);
NSStringDrawingOptions options = NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin;
NSDictionary *attr = @{NSFontAttributeName: [your font and font size]};
CGRect textViewBounds = [theText boundingRectWithSize:maximumTextViewSize
options:options
attributes:attr
context:nil];
CGFloat height = ceilf(textViewBounds.size.height);
只需添加
[self layoutIfNeeded]
计算高度后,您应该没事。
如果没有,请回到我身边。
func heightForView(text:String, font:UIFont, width:CGFloat, xpos:CGFloat) -> CGFloat {
let label:UILabel = UILabel(frame: CGRectMake(xpos, 0, width, CGFloat.max))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping
label.font = font
label.text = text
label.sizeToFit()
return label.frame.height
}
启用文本视图滚动时,通过取消选中“滚动启用”或通过添加以下代码,可更改故事板中的内容,textView不会意识到其内容:
textview.scrollEnabled = false
这将使textView知道其内容,并且其高度将根据其内容而增加或缩小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.