UILabel高度自适应

步骤1:创建UILabel 并初始化任意大小.我这里就假设它为屏幕宽度.
    UILabel *label = [[UILabel alloc]init];
    label.frame = CGRectMake(0, 30, self.view.frame.size.width, 0);

步骤2:给UILabel添上背景颜色 为了待会见证效果

 label.backgroundColor = [UIColor redColor];
    label.text = @"i这是一款专门为准妈妈和幼儿启蒙的App,里边含有丰富的孕期知识,孕妇菜谱,胎教音乐,幼儿启蒙音乐,故事, 幼儿启蒙画板,宝贝成长日记。是专为妈妈和宝贝量身定做的一款实用App.妈妈Love,妈妈的首选,宝宝的.使用AVFoundatio";
    label.textColor = [UIColor blueColor];
    label.textAlignment = NSTextAlignmentCenter;
    

步骤3:设置label的行数可变以及断行截取方式  ,非常重要

    label.font = [UIFont systemFontOfSize:25];
    label.numberOfLines = 0;
    label.lineBreakMode = NSLineBreakByWordWrapping;


步骤4  设置给label赋值新的frame  其实主要是高度

textFrame.size.height = [label.text boundingRectWithSize:CGSizeMake(textFrame.size.width,CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:[NSDictionary dictionaryWithObjectsAndKeys:label.font,NSFontAttributeName,nil] context:nil].size.height;
    label.frame = CGRectMake(0, 30, self.view.frame.size.width, textFrame.size.height);

NSStringDrawingTruncatesLastVisibleLine:

如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。如果没有指定NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略。




你可能感兴趣的:(UILabel高度自适应)