我正在使用UITextView
来显示一些数据。我需要根据其内容计算UITextView
的高度。我试过contentSize.height
,但它不适合我。 有没有人有这个解决方案? 这是我用AutoLayout编写的代码。我已与插座如何根据iOS 9中的内容获取UITextView高度
CGFloat height= _myTextView.contentSize.height;
_heightConstraint.constant = height;
我正在使用UITextView
来显示一些数据。我需要根据其内容计算UITextView
的高度。我试过contentSize.height
,但它不适合我。 有没有人有这个解决方案? 这是我用AutoLayout编写的代码。我已与插座如何根据iOS 9中的内容获取UITextView高度
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);
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的当文本视图滚动enabeld 变化,在通过取消滚动故事板是不知道其内容的允许或代码中加入这样的:
textview.scrollEnabled = false
这将使textView知道它的内容,并且它会根据其内容在高度上增长或缩小。
您是否获得了正确的身高值?当你改变约束时,你需要做[self layoutIfNeeded] –
是的,我已经试过它layoutIfNeeded – user3306145