如何将文本拆分为单独的UITextView页面?

时间:2011-09-29 01:30:27

标签: iphone uitextview sizewithfont

一个子问题是:

如何确定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上使用这个过程会在文本的最后一行出现这些差距吗?

1 个答案:

答案 0 :(得分:0)

内置边距由属性contentInset表示。

您也可以自己配置边距。

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

在代码中,执行类似 -

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

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