如何调整 UITextView 的宽度以适应其内容而不换行?

发布于 2024-12-05 11:50:47 字数 205 浏览 0 评论 0原文

调整 UITextView 的大小以适应其内容的高度可以这样实现:

CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;

是否有类似于适合宽度的东西,而不包裹内容文本?

Resizing UITextView to fit height of its content can be achieved like this:

CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;

Is there something similar to fit width, without wrapping the content text?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

地狱即天堂 2024-12-12 11:50:47

1)您可以使用NSString UIKit Additions 来计算文本所采用的大小(并相应地调整 UITextView 的大小)。您可能会在此处看到示例。

例如,如果您需要知道在单行上呈现的 NSString 所采用的 CGSize,请使用 CGSize sz = [_textView.text sizeWithFont:_textView.font] 然后根据这个尺寸值调整框架。

如果您需要知道在多行上呈现的文本所占用的大小,并在文本达到给定宽度时换行,请改用 sizeWithFont:constrainedToSize:lineBreakMode: 等。


2) 您可能还对 UIView 的 sizeThatFits: 和 sizeToFit 方法感兴趣< /强>。
第一个返回 CGSize(适合传入参数中给定的 CGSize),以便您的 UITextView 可以显示所有文本。第二个实际上是调整大小,为您调整框架。

1) You can use the NSString UIKit Additions to compute the size taken by the text (and adjust the size of your UITextView accordingly). You may seen an example here.

For example, if you need to know the CGSize that is taken by your NSString if rendered on a single line, use CGSize sz = [_textView.text sizeWithFont:_textView.font] then adjust your frame given this size value.

If you need to know the size taken by your text if rendered on multiple lines, wrapping it if the text reaches a given width, use sizeWithFont:constrainedToSize:lineBreakMode: instead, etc.


2) You may also be interested in the sizeThatFits: and sizeToFit methods of UIView.
The first one returns the CGSize (that fits in the given CGSize passed in parameter) so that your UITextView can display all your text. The second actually do the resizing, adjusting the frame for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文