如何在Swift中通过编程将UITextView的高度设置为其内容大小?

9
我有一个名为“recipeDesc”的UITextView。我希望在我的应用程序中提供一个选项,以动态调整UITextView的高度,以适应UITextView内部的内容(文本)(因此需要知道如何以编程方式实现它)。我找到了一些Objective-C的解答,但是我不太熟悉它,所以不知道如何在Swift中实现它。
感谢您提前提供任何帮助。
1个回答

16

您可以使用以下代码来获取UITextView的理想内容大小:

let contentSize = textView.sizeThatFits(textView.bounds.size)

那么,在此之后,您可以使用该高度调整其框架:

var frame = textView.frame
frame.size.height = contentSize.height
textView.frame = frame

我最初使用了 textView.contentSize.height,但在视图尚未呈现时该方法无法正常工作,例如在 viewDidLoad 中。

如果您使用自动布局,则规则略有不同。如果您使用自动布局,请更新您的问题说明。


我也遇到了一些问题,我使用自动布局:https://dev59.com/uV0b5IYBdhLWcg3wO_I_ 我尝试使用你的代码,但在我的情况下它不起作用。 - cmii

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接