UITableViewCell.SeparatorStyle.none如何工作?

时间:2019-04-02 00:52:40

标签: ios uitableview

我知道应该“删除”分隔符,但事实并非如此:

  1. 如果查看视图的层次结构,将会看到_UITableViewCellSeparatorView被添加为单元格的子视图。
  2. 分隔符的isHidden属性也是false
  3. 分隔符的alpha1.0
  4. 分隔符的框架位于单元格的范围内,因此不会被裁剪。

然后如何“删除”分隔符?

2 个答案:

答案 0 :(得分:2)

当单元格分隔符样式设置为“无”时,将添加一个_UITableViewCellSeparatorView,其背景颜色为nil

the first _UITableViewCellSeparatorView in the cell's view hierarchy

the background property of the first _UITableViewCellSeparatorView

如果分隔符样式设置为“单行”,您将看到每个单元格都有一个附加的分隔符视图,其背景颜色为非零。分隔符视图实际上是作为一行显示的视图。

the second _UITableViewCellSeparatorView in the cell's view hierarchy

the background property of the second _UITableViewCellSeparatorView

答案 1 :(得分:1)

如果我在打开分隔符的情况下运行“调试视图层次结构”,则在每个单元格中会看到两个_UITableViewCellSeparatorView

一种具有nil背景色,另一种具有默认颜色。

如果我在关闭分隔符的情况下运行它,我只会看到一个分隔符视图,并且其背景色为零。

因此看来,当分隔符关闭时,要删除的视图就是具有背景色的视图。

不确定为什么在层次结构中会有一个额外的视图,也许是一个美观的视图,另一个是定位单元格内容的视图。