sizeWithFont:constrainedToSize:lineBreakMode:使用UILineBreakModeClip时不正确?

时间:2011-11-07 10:52:25

标签: iphone objective-c ios

我在使用sizeWithFont方面遇到了一些麻烦,特别是对于lineBreakMode。

CGSize maxSize = CGSizeMake(30, 999);
UIFont *font = [UIFont fontWithName:@"TrebuchetMS" size:10.0f];
CGSize size = [@"hello" sizeWithFont: font constrainedToSize:maxSize lineBreakMode:UILineBreakModeClip];

使用此代码,尺寸返回时宽度为23,高度为13,这是正确的,但是如果我将maxSize减小到(10,999),返回的尺寸最终会以9的宽度和高度为39,好像文本被包裹在多行上一样。不应该UILineBreakModeClip导致高度保持与最初相同(其余部分被剪裁)或者我对此有点了解吗?

1 个答案:

答案 0 :(得分:0)

sizeWithFont:constrainedToSize:lineBreakMode:用于计算多行文本,因此它将文本分成多行以尝试使其适合给定的宽度。相反,请尝试sizeWithFont:forWidth:lineBreakMode:这意味着计算一行文本。

有关信息,请参阅UIKit NSString Additions Reference