UITableView separatorStyle = none 与 separatorColor = .clear

UITableView separatorStyle = none vs. separatorColor = .clear

昨天我从别人那里看了一个相当大的项目,我注意到无论什么地方的目的不是让 UITableView 生成分隔符,它是通过设置 tableView.separatorColor = .clear 而不是 [=12] 来完成的=].

现在我想知道是否可能有这样的原因.. 结果是否有任何不同或改变样式 属性 是否因为缺少 0.5p 而以某种方式弄乱了约束?

是的,您的思路是正确的。

tableView.separatorColor = .clear // 清除分隔符背景颜色

tableView.separatorStyle = .none // 它从 superview(UITableCell)

中移除分隔符

案例研究:

考虑将 UITableViewCell 的高度设置为 50。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 50
}

如果 UITableViewCell 中有 UILabel 并且您提供了 前导、尾随、顶部和底部 约束,则 tableView.separatorStyle = .none 将不会导致任何约束中断,因为 UILabel 的高度将自动增加。

但是如果上面的情况你也应用了height-constraint,那么计算出的高度会有0.5像素的差异和约束高度。

不一定每次都会发生,但为了防止这种情况,我们应该使用tableView.separatorColor = .clear