我在使用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导致高度保持与最初相同(其余部分被剪裁)或者我对此有点了解吗?
答案 0 :(得分:0)
sizeWithFont:constrainedToSize:lineBreakMode:用于计算多行文本,因此它将文本分成多行以尝试使其适合给定的宽度。相反,请尝试sizeWithFont:forWidth:lineBreakMode:这意味着计算一行文本。
有关信息,请参阅UIKit NSString Additions Reference。