美文网首页
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