根据Label和字体大小自适应高度
- (CGFloat)getHeightWithLabel:(UILabel *)label andFontSize:(CGFloat)size { label.numberOfLines = 0; NSMutableAttributedString *labelString = [[NSMutableAttributedString alloc] initWithString:label.text]; [labelString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:size] range:NSMakeRange(0, [labelString length])]; CGRect labelStringRect = [labelString boundingRectWithSize:CGSizeMake(label.frame.size.width, 9999) options:NSStringDrawingUsesLineFragmentOrigin context:nil]; CGRect labelRect = label.frame; labelRect.size.height = labelStringRect.size.height; label.frame = labelRect; label.attributedText = labelString; return label.frame.size.height; }
根据Label和字体大小自适应宽度
- (CGFloat)getWidthWithLabel:(UILabel *)label andFontSize:(CGFloat)size { label.numberOfLines = 0; NSMutableAttributedString *labelString = [[NSMutableAttributedString alloc] initWithString:label.text]; [labelString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:size] range:NSMakeRange(0, [labelString length])]; CGRect labelStringRect = [labelString boundingRectWithSize:CGSizeMake(9999, label.frame.size.height) options:NSStringDrawingUsesLineFragmentOrigin context:nil]; CGRect labelRect = label.frame; labelRect.size.width = labelStringRect.size.width; label.frame = labelRect; label.attributedText = labelString; return label.frame.size.width; }