UITableView spacerStyle =无vs. spacerColor = .clear

时间:2018-10-05 10:46:28

标签: ios swift uitableview separator

昨天我查看了其他人的一个相当大的项目,并且我注意到,无论打算不要由UITableView生成分隔符,都是通过设置tableView.separatorColor = .clear而不是tableView.separatorStyle = .none来完成的。

现在,我想知道是否可能有原因。结果是否有所不同,或者更改样式属性会因为缺少0.5p而以某种方式破坏了约束吗?

1 个答案:

答案 0 :(得分:2)

是的,您正在朝正确的方向思考。

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

tableView.separatorStyle = .none //从超级视图(UITableCell)中删除分隔符

案例研究:

UITableViewCell的高度设置为50。

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

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

但是,在上述情况下,如果您还应用了 height-constraint ,那么计算出的高度和约束高度就会有 0.5像素的差异。

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