根据文本更改UITextView高度

时间:2014-03-15 08:46:47

标签: ios objective-c uitextview

我的应用程序包含许多单元格的表格,当用户点击它时,会出现详细视图控制器。细节视图控制器有一个图像和UITextView,它不可编辑,仅用于显示文本(就像标签一样)。它包含的文本来自xml文件,有时它有几行,有时会有很多文本。

我想要的是 - 根据文字的数量使UITextView高度变化。例如,对于多行,它可能是50像素高,在其他情况下是300像素。我如何测量正确的高度并将其设置为UITextView?我再次指出,它的目的只是为了显示文本,而不是以任何方式进行编辑。我的第二项任务是测量最终UITextView高度并将其存储在某个变量中。

还有我尝试过的事情:

CGRect textViewRect      = self.myTextView.frame;
textViewRect.size.height = self.myTextView.contentSize.height;
self.myTextView.frame = textViewRect;

但显然它不起作用。知道如何实现这个目标吗?

任何建议都将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:1)

使用UIView的这种方法:

- (CGSize)sizeThatFits:(CGSize)size

通常,您希望视图的宽度有限,但任何高度。所以你传入一个宽度尽可能多的大小和高度,例如10000.0,所以它得到了它所需要的高度。这将返回视图根据其当前内容需要的大小。

答案 1 :(得分:1)

试试这个

UITextView *textview1;
[textview1.text sizeWithFont:text.font constrainedToSize:textview1.frame.size];