您的位置:首页 > 产品设计 > UI/UE

UILabel高度自适应

2015-10-20 20:35 393 查看
步骤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选项,则该选项被忽略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: