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