原来算高度直接使用
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);
轻松解决,
但是碰到换行,就懵逼了吧!
若显示有换行的字符串,可以使用UITextView帮你轻松解决高度计算上代码
UITextView *ysTextView = [[UITextView alloc] initWithFrame:CGRectMake(0, 10, 300, 10)];
ysTextView.text = @"我原以为的以为,那些苍老的画面\r\n都终将会老去,走吧\r\n走吧\r\n我的血和汗\r\n<br />\r\n某天,我听你说着\r\n看遍千山万水\r\n开心的如此忘杯";
// 可以将标签 ,进行转换
NSString*ysStr =[ysTextView.text stringByReplacingOccurrencesOfString:@"<br />" withString:@"\r\n"];
ysTextView.font = [UIFont systemFontOfSize:14];
ysTextView.backgroundColor = [UIColor orangeColor];
ysTextView.textContainerInset = UIEdgeInsetsZero;
ysTextView.textContainer.lineFragmentPadding = 0;
[self.view addSubview:ysTextView];
CGFloat height=[(NSString *)ysTextView.text boundingRectWithSize:CGSizeMake(ysTextView.frame.size.width,CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:ysTextView.font} context:nil].size.height;
CGRect textViewFrame = ysTextView.frame;
textViewFrame.size.height = height;
ysTextView.frame = textViewFrame;
简简单单算好控件的高度。用什么Lab 用Lab 显示种数据要头疼了!
效果图