UITableView - 自定义选定自定义 UITableViewCell 中的背景视图在选中时隐藏单元格分隔符



我有一个呈现自定义类DrawerTableCell单元格的UITableView,它是这样声明的:

class DrawerTableCell: UITableViewCell {
@IBInspectable var selectionColor: UIColor = .gray {
didSet {
configureSelectedBackgroundView()
}
}
func configureSelectedBackgroundView() {
let view = UIView()
view.backgroundColor = selectionColor
selectedBackgroundView = view
}
}

创建此UITableViewCell子类是为了能够为单元格指定选定的背景色。

在我的视图控制器中,我设置了:

tableView.separatorColor = .white

我以这种方式配置单元格:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "drawerCell") as! DrawerTableCell
cell.selectionColor = UIColor.blue
return cell
}

结果是,当未选择单元格时,所有分隔符都会正确显示。当我选择一个单元格时,会显示背景颜色,但分隔符仅隐藏在所选单元格中。

关于如何将分隔线保留在所选单元格中的任何想法?

谢谢。

根据Apple的文档,UITableViewCell仅在选择单元格时将此属性的值添加为子视图。如果所选背景视图不是 nil,它将所选背景视图添加为直接位于背景视图 (backgroundView( 上方的子视图,或位于所有其他视图的后面。

因此,根据这一点,我认为您的分隔符是隐藏的,因为它位于您的新视图下方。尝试将你的选择颜色设置为 .clear,看看会发生什么。如果这不起作用,您也可以尝试完全删除表格视图上的分隔符,只需在每个单元格的底部添加一条 0.5px 行。

最新更新