UITextView contentSize.height 比必要的大吗?

Posted

技术标签:

【中文标题】UITextView contentSize.height 比必要的大吗?【英文标题】:UITextView contentSize.height larger than necessary? 【发布时间】:2011-07-27 19:01:53 【问题描述】:

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

【问题讨论】:

我也面临同样的问题。我注意到空间差异随着 UITextView 上文本长度的增加而变大。 UITextView 在所有方向都有固定的 8px 边距,这通常会导致使用此控件时出现许多大小异常。 【参考方案1】:

您可以为该 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 在各个方向都有 8 像素的填充,因此如果您的 UITextView 框架的宽度为 200,那么您实际上将有 184 像素的文本宽度。

【讨论】:

【参考方案2】:

已经很晚了,但对于其他人,请尝试:

self.textView.contentInset = UIEdgeInsetsZero;

这对我有用。

【讨论】:

以上是关于UITextView contentSize.height 比必要的大吗?的主要内容,如果未能解决你的问题,请参考以下文章

UITextView 背景图像不适合 UITextView 框架的框架大小

当 UITextView 的文本超出 1 行时展开 UITextView 和 UITableView

选择另一个 UITextView 时,如何阻止 UITextView 退出第一响应者/关闭键盘?

从 UIView 中的 UITextView 复制文本后,UITextView 更改为 UIWebDocumentView?

UITextView 数据变化迅速

UITextView contentInset 在 iOS 7 上的 UITextView 中不起作用?