美文网首页
iOS 计算label高度的准确方法

iOS 计算label高度的准确方法

作者: Happy晓哥 | 来源:发表于2017-10-18 14:04 被阅读20次

这种方法计算label高度,会少计算间距

- (CGSize)calculateStringWithFont:(CGFloat)font Size:(CGSize)size {
    // 影响文字大小的因素有:
    // 1.跟文字的字体大小有关
    // 2.跟它限定的宽度有关,宽度越窄,高度越高
    // 第一个参数:传入一个 CGSize 用来限定它最大的宽度是多少,最大的高度是多少
    //   如果没有达到最大的宽度和最大的高度,那么久返回实际尺寸,如果超过了你限定的最大宽度和高度,那么只会返回你最大的宽度和高度
    // 第二个参数:直接传 NSStringDrawingUsesLineFragmentOrigin 就可以,因为它既可以计算单行,也可以计算多行
    // 第三个参数: 传入一个字典,这个字典就是让你设置字体的大小的,或者字体颜色
    NSDictionary *attr = @{ NSFontAttributeName : [UIFont systemFontOfSize:font]};
    return [self boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:attr context:nil].size;
}

以下方法会包含字体间距,计算更为准确

self.messageLabel.preferredMaxLayoutWidth = 260;
CGSize size = [self.messageLabel sizeThatFits:CGSizeMake(self.messageLabel.preferredMaxLayoutWidth,CGFLOAT_MAX)];
``

相关文章

网友评论

      本文标题:iOS 计算label高度的准确方法

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