计算NSAttributedString rect的时候会用下边的方法:
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);
设置NSStringDrawingOptions的值:
NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin
如果用到NSParagraphStyleAttributeName属性时
不要设置NSMutableParagraphStyle.lineBreakMode为
NSLineBreakByClipping
NSLineBreakByTruncatingHead
NSLineBreakByTruncatingMiddle
NSLineBreakByTruncatingTail
这会影响高度计算。
说明: 计算高度的时候使用默认值0,给UIlabel赋值的时候可以在设置linBreakModel为NSLineBreakByTruncatingTail。(根据UE的要求超过打点截断)
网友评论