UITextView的contentSize.height是否比必要的大?

4

UITextView即使所有文本都适合其框架,它也会滚动。 它滚动的方式就像在文本底部有两个换行符一样,但实际上并没有。 因此,它的contentSize.height似乎比文本多几行。 我该如何消除这种现象? 即,我如何收紧内容大小?


我也遇到了同样的问题。我注意到随着UITextView文本长度的增加,空格之间的差距变得越来越大。 - Rodrigo
4
UITextView在所有方向上都有固定的8像素边距,这通常解释了在使用此控件时出现的许多尺寸异常。 - reddersky
2个回答

0

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

你可以使用NSString中的方法sizeWithFont...。你可以在这里查看完整列表:http://developer.apple.com/library/ios/#documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html

我注意到有些方法在使用时会出现问题,但其中一个从未让我失望:

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

我猜您有一个固定的宽度,并想找出正确的高度。 考虑到固定的200像素宽度,应该是这样的:

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像素。

0
晚了点,但是对其他人来说,可以试一下这个:
self.textView.contentInset = UIEdgeInsetsZero;

这对我有用。


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