如果使用sizeToFit属性,如何获取UITextView contentView高度?

时间:2017-05-31 07:16:36

标签: ios swift3 uitextview

如果Iam使用sizeToFit属性,如何获取UITextView contentView高度?

2 个答案:

答案 0 :(得分:1)

如果您正在使用,

 int numLines = txtview.contentSize.height / txtview.font.lineHeight;

获取textView中的行数,然后根据内容大小,您不需要sizeToFit或不需要设置textView的帧。

txtview.contentSize.height会为您提供内容视图的高度,您可以获得行数。

但请确保您在viewDidAppear(或您的观看后的任何地方)不在viewDidload中执行此操作,因为在viewDidload中您的textview未完全加载。

答案 1 :(得分:1)

UITextView本身有一个名为sizeThatFits的函数:它将返回在边界框内显示UITextView所有内容所需的最小尺寸,您可以指定。

以下内容同样适用于iOS 7及更早版本,目前不包含任何已弃用的方法。

- (CGFloat)textViewHeightForAttributedText: (NSAttributedString*)text andWidth: (CGFloat)width {
UITextView *calculationView = [[UITextView alloc] init];
[calculationView setAttributedText : text];
CGSize size = [calculationView sizeThatFits:CGSizeMake(width, FLT_MAX)];
return size.height;
}

参考链接UITableViewCell with UITextView height in iOS 7?