2011-09-29 52 views
0

一个子问题是:如何将文本拆分为单独的UITextView页面?

如何确定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这个过程?

回答

0

内置边距由属性contentInset表示。

您也可以自己配置边距。

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

在代码中,做一些喜欢 -

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

你必须根据你找到合适的设置这些值。

HTH,

阿克沙伊

+0

这不回答这个子问题。我想知道UITextView的边距是如何设置的,而不是如何设置边距。 –

+0

答案本身就在我的答复中。 'contentInset'属性为您提供了一个表示边距的“UIEdgeInsets”。编辑我的答案! – Akshay

+0

在IB中,UITextView的内容插入值设置为0.但是,我可以看到,文本从UITextView的边缘缩进了每边约10个像素。那么有没有一种方法可以确定这个10像素插值的值是多少? –

相关问题