我正在使用UITextView
来显示一些数据。我需要根据其内容计算UITextView
的高度。我试过contentSize.height
,但它对我不起作用。
有人有解决方案吗?
这是我的AutoLayout代码。我已经用插座
CGFloat height= _myTextView.contentSize.height;
_heightConstraint.constant = height;
答案 0 :(得分:0)
首先使用以下内容将文本视图调整为内容:
[yourtTextView sizetofit];
然后使用以下方法获取视图的高度:
double textViewHeight = yourtTextView .frame.size.height;
答案 1 :(得分:0)
您可以使用以下方法计算文本的高度,对我来说非常适合:
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);
答案 2 :(得分:0)
添加
[self layoutIfNeeded]
在计算出身高后,你应该没事。
如果没有,请回到我身边。
答案 3 :(得分:0)
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
}
答案 4 :(得分:0)
当文本视图滚动被添加时,textView不知道其内容 通过取消选中Scrolling启用或通过添加以下代码来改变故事板中的内容:
textview.scrollEnabled = false
这将使textView知道其内容,并且它将根据其内容增加或缩小高度。