boundingRectWithSize:options:att

作者: 其实也是 | 来源:发表于2016-04-06 13:42 被阅读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)];

    相关文章

      网友评论

        本文标题:boundingRectWithSize:options:att

        本文链接:https://www.haomeiwen.com/subject/frcmlttx.html