iOS 几行代码轻松搞定UITableViewCell 自适应高度

最近看了网上很多关于cell自适应高度的文章,都没说到点上,有点还很繁琐,现在提供一个非常方便清晰的思路给大家参考:

第一步.设置tableView.estimatedRowHeight ,这里的值是表示 cell自动适应的最大高度.

第二步.在UITableViewCell 中做手脚。具体整么做呢,


一定要用的自动布局,现在主流的用 Masonry,但是我用的是:UIView+AutoLayout,反正都可以实现自动布局。

-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier

{

    self= [superinitWithStyle:stylereuseIdentifier:reuseIdentifier];

    if(self){

        self.selectionStyle = UITableViewCellSelectionStyleNone;


        UIImageView*headImageView = [[UIImageViewalloc]init];

        self.headImageView= headImageView;

        [self.contentViewaddSubview:headImageView];

        [headImageViewautoPinEdgeToSuperviewEdge:ALEdgeLeft withInset:REPAIR_LEFT_MARGIN];

        [headImageViewautoPinEdgeToSuperviewEdge:ALEdgeTop withInset:REPAIR_TOP_MARGIN];

//这个地方的高度一定要设置固定

        [headImageViewautoSetDimensionsToSize:CGSizeMake(25,25)];

        VIEW_CORNER(headImageView,12.5);

        UILabel*textContentLabel = [[UILabelalloc]init];

        textContentLabel.textColor=BD_DEEP_COLOR;

        textContentLabel.font=BD_CONTENT_FONT;

        textContentLabel.numberOfLines=0;

        self.textContentLabel= textContentLabel;

        [self.contentViewaddSubview:textContentLabel];

//与图片左对齐,与图片底部保持多少距离,与contentview右边保持距离,与contentview底部保持距离,然后再设置内容label的最小高度。

        [textContentLabelautoPinEdge:ALEdgeLefttoEdge:ALEdgeLeftofView:headImageView];

        [textContentLabelautoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:headImageView withOffset:REPAIR_OTHER_MARGIN];

        [textContentLabelautoPinEdgeToSuperviewEdge:ALEdgeRight withInset:REPAIR_LEFT_MARGIN];

        [textContentLabelautoPinEdgeToSuperviewEdge:ALEdgeBottom withInset:REPAIR_TOP_MARGIN];

        [textContentLabelautoSetDimension:ALDimensionHeight toSize:25 relation:NSLayoutRelationGreaterThanOrEqual];



    }

    return self;

}



能够实现这个的原理主要是UILabel的自适应功能。

是不是很简单呢。针对一些比较简单的cell,还有必要去算么?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容