一个子问题是:
如何确定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 :(得分:0)
内置边距由属性contentInset
表示。
您也可以自己配置边距。
如果您在IB中有文本视图,请查找内容插入。值必须为0,但仍显示一些余量。尝试将它们设置为负值,例如-4或-8。
在代码中,执行类似 -
的操作myTextView.contentInset = UIEdgeInsetsMake(-4,-8,0,0);
您必须根据您认为合适的值设置这些值。