我的应用程序包含许多单元格的表格,当用户点击它时,会出现详细视图控制器。细节视图控制器有一个图像和UITextView
,它不可编辑,仅用于显示文本(就像标签一样)。它包含的文本来自xml文件,有时它有几行,有时会有很多文本。
我想要的是 - 根据文字的数量使UITextView
高度变化。例如,对于多行,它可能是50像素高,在其他情况下是300像素。我如何测量正确的高度并将其设置为UITextView
?我再次指出,它的目的只是为了显示文本,而不是以任何方式进行编辑。我的第二项任务是测量最终UITextView
高度并将其存储在某个变量中。
还有我尝试过的事情:
CGRect textViewRect = self.myTextView.frame;
textViewRect.size.height = self.myTextView.contentSize.height;
self.myTextView.frame = textViewRect;
但显然它不起作用。知道如何实现这个目标吗?
任何建议都将不胜感激,谢谢!
答案 0 :(得分:1)
使用UIView的这种方法:
- (CGSize)sizeThatFits:(CGSize)size
通常,您希望视图的宽度有限,但任何高度。所以你传入一个宽度尽可能多的大小和高度,例如10000.0,所以它得到了它所需要的高度。这将返回视图根据其当前内容需要的大小。
答案 1 :(得分:1)
试试这个
UITextView *textview1;
[textview1.text sizeWithFont:text.font constrainedToSize:textview1.frame.size];