iOS的UILabel和UITextView根据文字内容计算高度

前言:在开发中,我们经常会遇到根据文字内容来计算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.

你可能感兴趣的:(iOS的UILabel和UITextView根据文字内容计算高度)