我需要根据内容高度动态更改UITextView Frame高度。即所以当包含高度增加而不是允许用户滚动我想改变我的UITextView的帧高度,以便用户可以读取所有数据。
所以这里是我的代码片段,
-(void)viewDidLoad{
[super viewDidLoad];
_txtView.delegate = self;
previousheight = _txtView.contentSize.height;
NSLog(@"%.2f",previousheight);
}
这里我得到了日志值 - > 22。
-(void)textViewDidChange:(UITextView *)textView{
NSLog(@"%.2f",textView.contentSize.height);
}
这里我得到了日志值 - > 36。
=============================================== ================================
现在另一种方式,如果我禁用UITextView的滚动,那么我得到完美/预期的结果。唯一的问题是我之后无法启用滚动。
-(void)viewDidLoad{
[super viewDidLoad];
_txtView.scrollEnabled = FALSE;
previousheight = _txtView.contentSize.height;
NSLog(@"%.2f",previousheight);
}
这里我得到了日志值 - > 30。
-(void)textViewDidChange:(UITextView *)textView{
NSLog(@"%.2f",textView.contentSize.height);
txtView.scrollEnabled = TRUE;
}
这里我得到了日志值 - > 30。
但是现在没有滚动,虽然我启用了滚动视图。
任何帮助将不胜感激。 谢谢
答案 0 :(得分:0)
我昨天将此报告为iOS 7.0上的一个错误。
我可以使用'boundingRectWithSize:...'正确计算文本高度,但如果禁用滚动,则无论高度如何,文本都会被切断。
有时有效的解决方案是:
textView.scrollEnabled = TRUE;
textView.text = @"Lorem ipsum...";
textView.scrollEnabled = FALSE;