如何使用boundingRectWithSize:options:attributes:context:
返回与<{1}}的{{1}}相同的完全?
例如,如果我像下面一样使用它,我会得到最多1个像素的差异:
intrinsicContentSize
E.g:
UILabel
const CGSize maxSize = CGSizeMake(label.frame.size.width, CGFLOAT_MAX);
NSDictionary * attributes = @{NSFontAttributeName:self.font};
CGSize textSize = [label.text boundingRectWithSize:maxSize
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
attributes:attributes
context:nil].size;
NSLog(@"1: %@", NSStringFromCGSize(label.intrinsicContentSize));
NSLog(@"2: %@", NSStringFromCGSize(textSize));
的文档说:
在iOS 7及更高版本中,此方法返回小数(大小) 返回的CGRect的组件);使用返回的大小来确定大小 视图,必须使用将其值提高到最接近的更高整数 使用ceil函数。
因此1: {53, 17}
2: {52.122002, 18}
和boundingRectWithSize
之间的区别是有道理的,可以使用53
来处理。但是,1像素的高度差不能。
我应该完全使用其他东西吗?