我有UITableView
呈现自定义类DrawerTableCell
的单元格,这是以这种方式声明的:
class DrawerTableCell: UITableViewCell {
@IBInspectable var selectionColor: UIColor = .gray {
didSet {
configureSelectedBackgroundView()
}
}
func configureSelectedBackgroundView() {
let view = UIView()
view.backgroundColor = selectionColor
selectedBackgroundView = view
}
}
创建了这个UITableViewCell
子类,以便能够为单元格指定所选的背景颜色。
在我的View Controller中设置:
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
}
结果是,当没有选择单元格时,所有分隔符都会正确显示。当我选择一个单元格时,会显示背景颜色,但分隔符仅隐藏在选定的单元格中。
有关如何将分隔线保留在所选单元格中的任何想法吗?
感谢。
答案 0 :(得分:1)
根据Apple的文档,UITableViewCell仅在选择单元格时才将此属性的值添加为子视图。它将选定的背景视图添加为背景视图(backgroundView)正上方的子视图(如果它不是nil),或者在所有其他视图后面。
所以根据这个,我认为你的分隔符是隐藏的,因为它位于你的新视图下面。尝试将selectionColor设置为.clear,看看会发生什么。如果这不起作用,您还可以尝试完全删除表视图上的分隔符,只需在每个单元格的底部添加0.5px行。