boundingRectWithSize高度计算不准确

- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);

这个方法是 iOS7 以后根据宽高属性计算字符串高度的一个方式.不同的属性会计算出不同的值.具体的可以谷歌下NSStringDrawingOptions.
这里只讨论计算多行的高度.

1.请设置NSStringDrawingOptions的值为

NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin

2.用到NSParagraphStyleAttributeName属性时

不要设置NSMutableParagraphStyle.lineBreakMode
NSLineBreakByClipping
NSLineBreakByTruncatingHead
NSLineBreakByTruncatingMiddle
NSLineBreakByTruncatingTail
不然高度会一直为一行.

如果用这个方法计算高度跟预想的不一样,一般是各种属性设置不正确,可以检查或者删除一些不影响高度计算的属性再去尝试.

你可能感兴趣的:(boundingRectWithSize高度计算不准确)