0

一个子问题是:

如何确定 UITextview 的内置内部边距是多少?

我有一个很长的主文本字符串,我试图将其拆分为单独的 UITextView 页面,然后我可以在 UIScrollView 内从一个页面滚动到另一个页面。我使用以下方法来确定 UITextView 中字符串的高度是多少以及字符串是否超过高度限制:

-(NSNumber *)getHeightByWidth: (NSString *) myString
                   mySize: (UIFont *) mySize
                  myWidth: (NSNumber *) myWidth

{
int intMyWidth = [myWidth intValue];

CGSize boundingSize = CGSizeMake(intMyWidth, CGFLOAT_MAX);
CGSize requiredSize = [myString sizeWithFont:mySize constrainedToSize:boundingSize lineBreakMode:UILineBreakModeWordWrap];  
NSNumber *retNumber = [[NSNumber alloc] initWithFloat:requiredSize.height];
return retNumber;

[retNumber release];
}

我使用以下 cellFont 作为 mySize 的输入来调用 getHeightByWidth 方法:

UIFont *cellFont = [UIFont fontWithName:@"Arial" size:14.0];

UITextView 是 320 像素宽,但我注意到文本不会从左边缘到右边缘,因为内部边距看起来每边大约 10 像素。因此,当我调用 getHeightByWidth 时,我设置了 myWidth = (320 - 10 - 10); 但是在构建适合 UITextView 的字符串之后,最后一行通常会有空白,可以用主字符串中的下一个单词填充。

谁能告诉我为什么使用 UITextView 的这个过程会在文本的最后一行出现这些空白?

4

1 回答 1

0

内置边距由属性表示contentInset

您也可以自己配置边距。

如果您在 IB 中有文本视图,请查找内容插图。值必须为 0,但仍显示一些边距。尝试将它们设置为负值,例如 -4 或 -8。

在代码中,执行类似的操作 -

myTextView.contentInset = UIEdgeInsetsMake(-4,-8,0,0);

您必须根据您认为合适的值来设置这些值。

于 2011-09-29T03:35:48.223 回答