swift 缓存行高_Swift-Cell行高自适应之SnapKit

本文以UITableView 使用SnapKit 来设置约束为例:

1. 列表页设置高度自适应、预估行高

// 自动计算行高

tableView.rowHeight = UITableView.automaticDimension

// 设置预估行高, 必须要写, 否则打印垃圾log日志, 提示约束冲突

tableView.estimatedRowHeight = 400

2. cell 中的操作

一般情况下只根据字体的多少, 自动换行后计算承载文字的控件底部约束与contentView 进行约束更新即可.

这里说另一种情况, 根据数据的不同, cell会显示不同数量的子控件, 也就是说, 子控件或者子控件和contentView 的相对约束发生改变时要做的处理.

布局时当前后约束参照物发生改变时, 一般都选择记录约束 -> 卸载约束 -> 重新设置约束来约束布局; 而当参照物未发生改变(也就是上面说的一把情况)的时候, 只需要更新约束即可.

示例图片

image.png

2.1 声明需要记录的约束

// MARK: 记录底部视图的 顶部约束 (需要引入import SnapKit)

var bottomViewTopConstraint: Constraint?

2.2 记录约束

// MARK: cell 自适应高度, 需要与底部视图做约束(具体⬇️)

contentView.addSubview(bottomView)

bottomView.snp_makeConstraints { (make) in

make.left.right.equalTo(contentView)

// MARK: 记录底部视图的 顶部约束的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值