在iOS 7中,sizeWithFont:
已过时。建议的替换方法是sizeWithAttributes:
但是当我将方法从sizeWithFont:
更改为sizeWithAttributes:
时
我得到了不同的价值观。
这是我的代码:
CGSize temp = [opt.option sizeWithFont:[UIFont fontWithName:fontFamily size:[self randomFontSize]]];
NSLog(@"Old SizeWithFont value %f x %f",temp.height, temp.width);
NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:fontFamily size:[self randomFontSize]]};
temp = [opt.option sizeWithAttributes: attributes];
NSLog(@"New SizeWithAttribute has value %f x %f",temp.height, temp.width);
输出为:
linespacing 16.33, fontsize 16.00
Old SizeWithFont value 18.000000 x 47.000000
New SizeWithAttribute has value 17.875000 x 46.250000
我做错什么了吗?我
答案 0 :(得分:2)
属性文本方法描述暗含行为差异(由我添加粗体)...
此方法返回分数大小;使用返回的尺寸 视图,您必须使用将它的值提高到最接近的较高整数 ceil函数。
它还指出,整数大小应使用ceil()
计算(换句话说,是向上取整)。这样做可以使您的实验按预期进行...
NSLog(@"New SizeWithAttribute has value %f x %f",ceil(temp.height), ceil(temp.width));