美文网首页
iOS的UILabel和UITextView根据文字内容计算高度

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

作者: 最强的小强 | 来源:发表于2018-10-31 14:46 被阅读0次

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

          本文链接:https://www.haomeiwen.com/subject/jodatqtx.html