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)];