为什么UITableView会忽略使用自定义separatorInset的"extra"分隔符的separatorColor?

Aar*_*ron 11 colors uitableview separator insets ios7

如果我separatorColor在iOS 7中的表视图上设置了红色,并且还设置了separatorInsetto UIEdgeInsetsZero或任何其他自定义插入值,则所有其他或"额外"行都具有默认的彩色分隔符.我怎样才能解决这个问题?

文档的最后一句separatorInset暗示它以某种方式控制额外的记录,但我不知道如何:

在iOS 7及更高版本中,单元格分隔符不会一直延伸到表格视图的边缘.此属性设置表中所有单元格的默认插入,就像rowHeight设置单元格的默认高度一样.它还用于管理在普通样式表底部绘制的"额外"分隔符.

将分隔符设置为viewDidLoad:

self.tableView.separatorColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

你得到这个:

在此输入图像描述

当你设置separatorInset和颜色时:

self.tableView.separatorInset = UIEdgeInsetsZero;    // <- any custom inset will do
self.tableView.separatorColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

你得到这个:

在此输入图像描述

为什么会发生这种情况,如何将所有分隔符设置为红色并将所有分隔符插入设置为零?这是一个错误吗?

Aar*_*ron 21

解决了它,但我无法解释为什么.

交换两个语句的顺序.首先设置颜色,然后设置插图:

self.tableView.separatorColor = [UIColor redColor];
self.tableView.separatorInset = UIEdgeInsetsZero;
Run Code Online (Sandbox Code Playgroud)

一切正常:

在此输入图像描述