实现方法:
- UILabel的自动换行
- 获取UILabel的frame大小
- 获取UILabel的字体大小
- 获取UILabel的文本内容
- 根据上面的3部分数据,计算文本显示区域大小
- 根据4计算的大小,实时改变UILabel的frame
nsstring *string = @"自动换行uilabel自适应啦啦啦啦啦啦啦啦";
CGSize labelSize = [string
sizeWithFont
:[
UIFont
systemFontOfSize
:
14
]
constrainedToSize:
CGSizeMake(200.0, 1000)
lineBreakMode:
NSLineBreakByCharWrapping
];//14 为UILabel的字体大小
//200为UILabel的宽度,5000是预设的一个高度,表示在这个范围内
label.numberOfLines = 0;//表示label可以多行显示
label.lineBreakMode =
NSLineBreakByCharWrapping
;//换行模式,与上面的计算保持一致。label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, labelSize.height);//保持原来Label的位置和宽度,只是改变高度。