我的文本视图中填充了我正在使用JSON解析的内容。每个文本视图都有不同的内容,因此每个文本视图的高度都会有所不同。
可以通过故事板或代码添加文本视图。像这样:
UITextView *newsContent = [[UITextView alloc] initWithFrame:CGRectMake(0.0f, 238.0f, 290.0f, 120.0f)];
newsContent.font = [UIFont fontWithName:@"HelveticaNeue" size:12.0];
newsContent.editable = NO;
newsContent.scrollEnabled = NO;
无论哪种方式,我必须确定文本视图高度,但由于它每次都会更改,我正在寻找一种方法来动态地更改文本视图高度。
有任何帮助吗?感谢。
答案 0 :(得分:0)
使用此
为desiredHeight
设置高值CGSize boundingSize = CGSizeMake(FIXED_WIDTH, desiredHeight);
CGSize requiredSize = [someText sizeWithFont:[UIFont fontWithName:@"HelveticaNeue" size:12.0]
constrainedToSize:boundingSize
lineBreakMode:UILineBreakModeWordWrap];
CGFloat requiredHeight = requiredSize.height;
但是在iOS 6中不推荐使用此功能,您可以在iOS 7中使用以下功能
CGRect textRect = [someText boundingRectWithSize:boundingSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue" size:12.0]}
context:nil];
CGFloat requiredHeight = textRect.size.height;
requiredHeight是textView宽度值为FIXED_WIDTH(常量)时为文本视图设置的高度,字体为[UIFont fontWithName:@“HelveticaNeue”大小:12.0],文本字符串为“someText”
答案 1 :(得分:0)
实现UITextView的委托方法,以便在文本每次更改时将文本视图的高度更改为其内容大小高度。如果您使用自动布局并且您有文本视图高度约束的出口,这是最简单的:
-(void)textViewDidChange:(UITextView *)textView {
// [textView sizeToFit]; // seems no longer needed in iOS 7.1
self.heightConstraint.constant = textView.contentSize.height;
}
但即使您没有使用自动布局,关键是要更改文本视图的框架,使其高度为contentSize.height
。