前言:在开发中,我们经常会遇到根据文字内容来计算View的高度
方案一:
UITextView *yuyanView = [[UITextView alloc] init];
yuyanView.editable = NO;
yuyanView.scrollEnabled = NO;
yuyanView.text = @"如何根据文字内容来计算View的高度";
CGSize yuyanSize = [yuyanView sizeThatFits:CGSizeMake(self.view.frame.size.width-5, MAXFLOAT)];
yuyanView.frame = CGRectMake(5, titleLabel.frame.size.height + titleLabel.frame.origin.y+5, yuyanSize.width, yuyanSize.height);
[contentView addSubview:yuyanView];
方案二:
UITextView *yuyanView = [[UITextView alloc] init];
yuyanView.editable = NO;
yuyanView.scrollEnabled = NO;
self.yuyanView = yuyanView;
yuyanView.text = _yuyan;
CGSize yuyanSize = [yuyanView.text boundingRectWithSize:CGSizeMake(self.view.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17]} context:nil].size;
yuyanView.frame = CGRectMake(5, titleLabel.frame.size.height + titleLabel.frame.origin.y+5, yuyanSize.width, yuyanSize.height);
[contentView addSubview:yuyanView];
后记: 遇到此问题的伙伴们赶快去试一试吧!有其他问题欢迎留言讨论。
坑:使用方案二的时候数据一直不能全部显示,需要在计算出来的高度上在加个40.
网友评论