UITextView无法使用自动布局更改大小

时间:2013-10-17 11:10:45

标签: ios uitextview setneedsdisplay contentsize sizetofit

我有一个XIB文件,其中包含UITextView作为子视图的视图。这个textView是30px高,因为它应该根据它的内容调整大小。

所以我以编程方式设置文本,调用-sizeToFit并重新配置textView的框架及其超级视图:

[_textView setText:[contents objectForKey:@"body"]];
[_textView sizeToFit];

CGSize txtSize = _textView.contentSize;
txtSize.height = _textView.frame.size.height;
_textView.contentSite = txtSize;

CGRect superFrame = _textView.superView.frame;
superFrame += _textView.contentSize.height;
_textView.superView.frame = superFrame;

superView实际上正确调整大小。此外,在记录文本视图框架和内容大小时,在控制台上它似乎没问题(约1200px高)。

但textView 仍然只是屏幕上的30px高。同时调用-setNeedsLayout并不能解决问题。

这可能是什么问题?

1 个答案:

答案 0 :(得分:2)

这是我几天前遇到的一个错误。看来如果UYextView的滚动被禁用,它将切断文本的一部分,无论高度如何。

在某些情况下有效的解决方案是:

[_textView setScrollEnabled:YES];
[_textView setText:text];
[_textView setScrollEnabled:NO];

我已向Apple报告此错误,但我建议您也这样做。