美文网首页iOS初学者iOS Developer
iOS动态计算一个label的高度

iOS动态计算一个label的高度

作者: 上北以北 | 来源:发表于2017-06-08 16:13 被阅读151次

    实际开发中我们经常会遇到根据文字多少计算label高度的问题,以下提供两个方法:

    先建立一个label

        _atest = [[UILabel alloc]initWithFrame:CGRectZero];
        _atest.numberOfLines = 0;
        _atest.lineBreakMode = NSLineBreakByWordWrapping;
    

    设置这个label的基础宽度(以200为例),高度设置为最大值

    CGSize baseSize = CGSizeMake(200, CGFLOAT_MAX);
    

    方法一:根据label中的内容计算高度(_testStr为字符串)

    CGSize labelsize  = [_testStr
                        boundingRectWithSize:baseSize
                        options:NSStringDrawingUsesLineFragmentOrigin
                        attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15.0]}
                        context:nil].size;
    _atest.height = labelsize.height;
    

    方法二:根据label的自适应获取高度

    CGSize labelsize = [_atest sizeThatFits:baseSize];
    _atest.height = labelsize.height;
    

    动态宽度的获取与高度一样,只不过是把基础宽度设置为最大,高度固定就可以了

    CGSize baseSize = CGSizeMake(CGFLOAT_MAX, 200);
    

    相关文章

      网友评论

        本文标题:iOS动态计算一个label的高度

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