IOS7.0以后UILabel高度自适应
IOS7.0以后,UILabel自适应高度的方法发生了改进,以下根据代码展示如何对一个label做自适应文本高度的操作。
代码示例:
UILabel *label = [[UILabelalloc]init];
NSString *testString = @"扭矩代表深V不VBS代表valjkalfkbvbv大家就开始大家是否还讲课费价格将开始该紧挨个接口发了个进口量是解放军司空见惯快乐到死接口、vkdfsbbjkdsbssfagagakjhkhh活佛济公三考虑公司是会计管理会计法规设计费";
label.text = testString;
//设置label行数,0表示不限定行数(必须写,否则只显示一行)
label.numberOfLines = 0;
//设置断行模式
label.lineBreakMode = NSLineBreakByCharWrapping;
label.backgroundColor = [UIColoryellowColor];
//设置字体类型
UIFont *font = [UIFontfontWithName:@"Verdana"size:14.0];
//注意label的font还是要设置的,下面字典里用到font时用其来制定size,而不是对label设置font
label.font = font;
NSDictionary *dic = [NSDictionarydictionaryWithObjectsAndKeys:font,NSFontAttributeName,nil];
//根据内容自适应size
//传入的参数分别为:label矩形的的尺寸界线、文本绘制时的附加选项、文字属性、 文本绘制时的附加选项,包括一些信息,例如如何调整字间距以及缩放,该对象包含的信息将用于文本绘制,该参数可为nil
CGSize stringSize = [testStringboundingRectWithSize:CGSizeMake(300,2000)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:dic
context:nil].size;
label.frame = CGRectMake(10, 200, stringSize.width, stringSize.height);
NSLog(@"%f %f",label.frame.size.width,label.frame.size.height);
[self.viewaddSubview:label];
效果展示: