Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITableViewCell.SeparatorStyle.none如何工作?_Ios_Uitableview - Fatal编程技术网

Ios UITableViewCell.SeparatorStyle.none如何工作?

Ios UITableViewCell.SeparatorStyle.none如何工作?,ios,uitableview,Ios,Uitableview,我知道它应该“移除”分离器,但事实并非如此: 如果查看视图的层次结构,将看到\u UITableViewCellSeparatorView被添加为单元格的子视图 分隔符的ishiden属性也是false 分隔符的alpha为1.0 分隔符的框架在单元格的边界内,因此不会被剪裁 那么分隔符是如何“删除”的呢?当单元格分隔符样式设置为“无”时,将添加一个背景色为“无”的\UITableViewCellSeparatorView 如果分隔符样式设置为单线,您将看到每个单元格都有一个附加的分隔符视图

我知道它应该“移除”分离器,但事实并非如此:

  • 如果查看视图的层次结构,将看到
    \u UITableViewCellSeparatorView
    被添加为单元格的子视图
  • 分隔符的
    ishiden
    属性也是
    false
  • 分隔符的
    alpha
    1.0
  • 分隔符的框架在单元格的边界内,因此不会被剪裁

  • 那么分隔符是如何“删除”的呢?

    当单元格分隔符样式设置为“无”时,将添加一个背景色为“无”的
    \UITableViewCellSeparatorView

    如果分隔符样式设置为单线,您将看到每个单元格都有一个附加的分隔符视图,其背景色为非nil。分隔符视图实际上是一条线

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

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

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

    因此,当分隔符关闭时,被移除的视图似乎是具有背景颜色的视图


    不确定为什么层次结构中有一个额外的视图,可能一个用于美学,一个用于定位单元格内容

    谢谢你的澄清!我可以问一下为什么会有一个额外的分隔符视图(nil视图)?@RayTso我的猜测与shim的相同-这些可能有助于建立表视图的单元格结构。