在开发过程中,文字框的大小位置对于产品美观影响很大,如果布局写死,将无法适配各种机型,稍微不小心就会出现文字显示不全的bug;那么如何动态确定文字框的大小和布局呢。这个在项目中是非常实用的
//初始化label ,最先的尺寸不用纠结
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
//设置自动行数与字符换行
[label setNumberOfLines:0];
label.lineBreakMode = UILineBreakModeWordWrap;
// 定义一个测试字串
NSString *str = @"这是一个测试哈哈哈哈哈哈哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊";
UIFont *font = [UIFont fontWithName:@"Arial" size:12];
//设置一个行高上限,作为下面方法的一个参数
CGSize size = CGSizeMake(320,2000);
//计算实际frame大小,并将label的frame变成实际大小
CGSize labelsize = [str sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
//最后再设置label的大小
[label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)];
着就是可以实现label自适高度和自动跨行