我有一个呈现自定义类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 行。