UITextView contentSize.height 比需要的大吗?

发布于 2024-11-26 10:26:59 字数 142 浏览 0 评论 0原文

即使所有文本都适合其框架,UITextView 也会滚动。它滚动起来,好像文本底部有两行新行,但实际上并没有。因此,它的 contentSize.height 似乎比文本大几行。我该如何摆脱这个?即,如何收紧内容大小?

UITextView scrolls even when all the text fits within its frame. It scrolls as if there are two new lines at the bottom of the text, but there aren't. So, its contentSize.height seems to be a couple lines larger than the text. How do I get rid of this? I.e., how do I tighten up the content size?

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

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

发布评论

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

评论(2

未央 2024-12-03 10:26:59

您可以设置该 UITextView 的 contentSize,使其紧贴文本。

您可以使用名为 sizeWithFont 的 NSString 方法...您可以在此处查看完整列表: http://developer.apple.com/library/ios/#documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html

我注意到其中一些的一些问题,但永远不会让我失望的是:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size

我想你有一个固定的宽度并想找出正确的高度。考虑固定的 200px 宽度,它会是这样的:

NSString *myText = @"Some text...";
CGSize tightContentSize = [mytext sizeWithFont:[UIFont fontWithName:@"Helvetica" size:12] constrainedToSize:CGSizeMake(200, 10000000)].height;

[myTextView setContentSize:tightContentSize];

考虑到你的 UITextView 在所有方向上都有 8px 的填充,所以如果你的 UITextView 框架是 200 宽度,你实际上会有 184px 的文本宽度。

You can set up the contentSize for that UITextView so that it tightens to the text.

You can make use of NSString methods named sizeWithFont.... You can check full list here: http://developer.apple.com/library/ios/#documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html

I've noticed some issues working with some of them, but one that never fails me is:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size

I suppose you have a fixed width and want to find out the correct height. Considering a fixed 200px width, it would be something like:

NSString *myText = @"Some text...";
CGSize tightContentSize = [mytext sizeWithFont:[UIFont fontWithName:@"Helvetica" size:12] constrainedToSize:CGSizeMake(200, 10000000)].height;

[myTextView setContentSize:tightContentSize];

Take into consideration that your UITextView has an 8px padding in all directions, so if your UITextView frame is 200 width, you would actualy have a 184px width for text.

心房敞 2024-12-03 10:26:59

虽然已经晚了,但对其他人来说,请尝试:

self.textView.contentInset = UIEdgeInsetsZero;

这对我来说是工作。

It's late but, for other people, try with:

self.textView.contentInset = UIEdgeInsetsZero;

That's work for me.

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