我的tableview
单元格存在严重问题。所以这是场景:
我做了什么:
的TableView :
self.tableView.allowsSelectionDuringEditing = true
self.tableView.allowsMultipleSelectionDuringEditing = true
细胞:
self.selectionStyle = .none -> Results in no longer selectable cells
期望:
左边的复选标记被选中,没有该死的蓝色边框/灰色背景。
结果:
背景视图可见,它会杀死单元格子视图(蓝色背景消失,白色文本不再可见等)
我已经测试过没有任何正面结果:
Cell.appearence().selectedBackground.color = UIColor.clear
或
cell.selectedBackground.color = UIColor.clear
或
override var isSelected:... within the cell
也许你有任何想法。
答案 0 :(得分:2)
试试这个:
Cell.selectionStyle = UITableViewCellSelectionStyle.none
答案 1 :(得分:0)
我提出了我自己的自定义解决方案来解决上述问题:
在单元格的awakeFromNib方法中我刚刚创建了UIView实例,如:
self.selectedBackgroundView = UIView()
在该方法中不再做任何事情。作为解决我的问题的补充,我将我的所有ui设计内容外包给自定义方法。
然后我覆盖 setHighlighted 和 setSelected 方法:
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
self.setUIproperties()
}
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
super.setHighlighted(highlighted, animated: animated)
self.setUIproperties()
}
为什么我这样做?
因为为您的手机提供自定义设计,必须进行覆盖。否则所有背景都将被设置为白色。 覆盖setSelected是不够的,因为当你长按单元格时,它会闪烁,你会看到突出显示的状态也会操纵你的ui。
我希望这对你们中的一些人有所帮助。
答案 2 :(得分:-1)
试试这个:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
//...
}