【问题标题】:Changing UITextView height depending of it text根据文本更改 UITextView 高度
【发布时间】:2014-04-20 17:23:44
【问题描述】:

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

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

我已经尝试过:

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

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

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

【问题讨论】:

标签: ios objective-c uitextview


【解决方案1】:

试试这个

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

【讨论】:

  • 这是不推荐使用的方法。
  • 对于 ios7 你可以使用 [view.text boundingRectWithSize:(CGSize) options:(NSStringDrawingOptions) attributes:(NSDictionary *) context:(NSStringDrawingContext *)]
【解决方案2】:

使用UIView的这个方法:

- (CGSize)sizeThatFits:(CGSize)size

通常,您希望视图的宽度有限,但高度不限。因此,您可以根据需要传入一个宽度和高度(例如 10000.0)的大小,这样它就可以达到所需的高度。这将根据当前内容返回视图需要多大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-23
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2021-03-05
    相关资源
    最近更新 更多