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

iOS7.0以上(含7.0)xib中UILabel自适应高度

2016-10-26 00:00 274 查看
摘要: 需要展示一些内容有变化的文本信息,并且要适配7.0系统,所以就寻找方法,供大家学习.不足之处,还望见谅.

1.首先在xib上放置一个label;
2.然后给label添加约束,约束label左左边距,上边距,右边距和高度;
3.修改label中文本的字体,修改为12号,这时候可能修改更新约束,更新一下即可;
4.在viewcontroller中得到这个label,@property (strong, nonatomic) IBOutlet UILabel *dreamResult;
5.设置一下代码:
/将显示的行数修改为0行
self.dreamResult.numberOfLines = 0;
//将文本断截模式设置为以空格为边界
self.dreamResult.lineBreakMode = NSLineBreakByWordWrapping;
NSString *s = @"这是一个测试!!!adsfsaf时发生发勿忘我勿忘我勿忘我勿忘我勿忘我阿阿阿阿阿阿阿阿阿阿阿阿阿啊00000000阿什顿。。。";
//赋值文本
self.dreamResult.text = s;
//设置一个行高上限
CGSize size = CGSizeMake([UIScreen mainScreen].bounds.size.width-20,MAXFLOAT);
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:12],NSFontAttributeName, nil];
//计算实际frame大小,并将label的frame变成实际大小
size = [s boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width-20, 2000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
self.dreamResult.frame = CGRectMake(self.dreamResult.frame.origin.x, self.dreamResult.frame.origin.y, size.width, size.height);

6.运行,完成.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息