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
}