如何调整 UITextView 的宽度以适应其内容而不换行?
调整 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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, useCGSize 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:
andsizeToFit
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.