iOS8 select/highlight 上 UITableViewCell 周围出现分隔线

Separator lines appearing around UITableViewCell on select/highlight in iOS8

我有一个非常简单的 UITableView,我将分隔符插入样式设置为 none:

tableView.separatorStyle = UITableViewCellSeparatorStyle.None

运行 应用程序我得到了我期望的结果,单元格之间没有线条。但是,当我 select 其中一个 table 视图单元格时,它周围会出现白线。为什么会这样,我可以更改它的外观吗?截图如下:

高亮显示箭头所示的线条。单元格颜色变化是有意的。在正确方向上的任何帮助将不胜感激。我使用 iOS 8.1 作为 XCode 6.1.1

的目标

背景颜色我设置如下。 在 viewDidLoad:

tableView.backgroundColor = UIColor.blackColor()
tableView.alpha = 0.8
tableView.separatorStyle = UITableViewCellSeparatorStyle.None

在 cellForRowAtIndexPath 中:

thisCell.contentView.backgroundColor = UIColor.blackColor()
thisCell.contentView.alpha = 0.85

请问您是如何在单元格中制作这样的背景的?在我看来,这不是选择线,它只是整个灰色背景,在您的单元格黑色背景视图下出现,同时部分或突出显示。您可以使用调试视图异端或只是覆盖这两个函数:

  1. func setSelected(selected: Bool, animated: Bool)
  2. func setHighlighted(highlighted: Bool, animated: Bool)

我假设您正在覆盖 setSelected 和 setHighlighted?

self.selectedBackgroundView.hidden = true

适合我。

我也花了一段时间才找到解决办法。这是我为单元格找到的视图层次结构:

0: class: 'UITableViewCellSelectedBackground'
0: class: 'UITableViewCellContentView'    
0: class: '_UITableViewCellSeparatorView'

UITableViewCellSelectedBackground 正在设置背景。然后用 ContentView 覆盖背景。