iOS开发之计算text和UILabel高度(UITableviewCell自适应)
第一步,先在Attributes Inspector将Label的Lines设为0,Line Breaks设为Word Wrap,并将Label的位置,宽度和高度等都设置好,然后设置好自动布局,或者用第三方框架实现布局(例如SDAutoLayout)。
第二步,添加以下方法
- (void)setTextAndAdjustLabel:(NSString *)text withLabel:(UILabel *)label
{
CGFloat maxWidth = label.frame.size.width; //获取标签宽度
//根据文本,标签宽度,字体来计算尺寸
CGRect rect = [text boundingRectWithSize:CGSizeMake(maxWidth, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:label.font}
context:nil];
//更新标签的frame
label.frame = CGRectMake(label.frame.origin.x,label.frame.origin.y,maxWidth,rect.size.height);
}
第三步,调用方法
[self setTextAndAdjustLabel:self.locationLabel.text withLabel:self.locationLabel];
之后在heightForRowAtIndexPath返回想要的高度,并调用reloaddata就可以自适应了