ios 知识小集iOS进阶指南iOS Developer

boundingRectWithSize:options:att

2016-04-06  本文已影响10186人  其实也是

iOS6下的文本高度计算方式如下:
CGSize size = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(130, 50) lineBreakMode:label.lineBreakMode];
但是这个方法在IOS7下已废弃。

[attributeStr boundingRectWithSize:CGSizeMake(maxWidth, 20000.f) options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin context:nil].size;

第一个参数跟以前方法一样,是传入一个CGSize结构体;
第二个参数options是个配置选项
高度计算时就传入NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading

如果你是用的NSString 的方法 就有第三个参数:attributes其实就是NSAttributeString的属性,是个字典类型的对象,传入你的字体NSDictionary *attrs = @{NSFontAttributeName : font};

最后一个参数就穿nil 就好了

注意: 我这里遇到的坑,由于是计算NSMutableAttributedString 必须设置富文本的字体样式,才可以计算正确
[attBodyStr addAttribute:NSFontAttributeName value:textBodyFont range:NSMakeRange(0, _venueObj.venues_description.length)];

上一篇下一篇

猜你喜欢

热点阅读