SnapKit自适应tableviewCell的高度布局

1.

需求:1.查看更多可以动态隐藏显示,2.请和客户确认提示语可以动态隐藏显示3.底部按钮可以动态隐藏所有跟显示

开发:

1.先将所有控件按照从上到下SnapKit布局

2.

将三部分的控件的顶部约束跟高度约束提取出来做动态配置:          

  例如:self.readMoreBackBottomConstraint = make.bottom.equalTo(self.readMoreBtnLable.snp_bottom).offset(RATIO * 8).constraint

由于查看更多lable是动态的高度,直接设置           

self.readMoreContentLable.snp_makeConstraints { (make) in

            make.left.equalTo(RATIO*40)

            self.readMoreContentTopConstraint = make.top.equalTo(self.locationBackView.snp_bottom).offset(RATIO * 20).constraint

            make.right.equalTo(RATIO*-40)

            make.height.greaterThanOrEqualTo(0)

        } 

不取高度约束

3.判断需要写全套 显示时的高度跟非显示时的高度 注意:如果不显示更多self.readMoreContentLable.text也要对应赋值为""

if model.appRemarkDto != nil {

            self.readMoreContentLable.text = model.appRemarkDto?.customer?.content

            //复原约束

            self.readMoreContentTopConstraint?.update(offset: RATIO * 20)

            self.readMoreBtnHeightConstraint?.update(offset: RATIO * 20)

            self.readMoreBackBottomConstraint?.update(offset: RATIO * 8)

            //显示控件

            self.readMoreContentLable.isHidden = false

            self.readMoreBtnLable.isHidden = false

            self.readMoreBackView.isHidden = false

        }else{

            //注意:这边空的数据需要赋值上内容为空 readMoreContentLable这个控件的高度为不固定 如果不赋值,会出现高度错乱

            self.readMoreContentLable.text = ""

            //更新约束

            self.readMoreContentTopConstraint?.update(offset: 0)

            self.readMoreBtnHeightConstraint?.update(offset: 0)

            self.readMoreBackBottomConstraint?.update(offset: 0)

            //隐藏控件

            self.readMoreContentLable.isHidden = true

            self.readMoreBtnLable.isHidden = true

            self.readMoreBackView.isHidden = true

        }

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