如何使用sizeToFit属性获得UITextView的contentView高度?
答
如果你正在使用,
int numLines = txtview.contentSize.height/txtview.font.lineHeight;
得到的textView
的行数,那么你不需要sizeToFit
或不设置textView
的帧按内容大小要求。
txtview.contentSize.height
会给你内容视图的高度,你可以得到行数。
但是请确保您在viewDidAppear
(或任何出现您的视图后)不在viewDidload
中执行此操作,因为在viewDidload
中您的textview未完全加载。
答
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;
}
如果您正在使用sizeToFit然后再不用你'textView.frame.size.height' –
@NiravD我需要的是让节数从UITextView的线。我得到的解决方案为:'int numLines = txtview.contentSize.height/txtview.font.lineHeight;'。但我无法获得正确的textView contentView高度。 –