我想删除uitableview单元格选择的默认蓝色。我不希望那里有任何选择颜色。我还没有创建自定义单元类。我通过在其上添加标签和按钮来自定义单元格。 我试过了:
cell.selectioncolor = [UIColor clearcolor];
但它表示不推荐使用此方法。
答案 0 :(得分:264)
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Swift 4 已更新
cell.selectionStyle = UITableViewCell.SelectionStyle.none
或者
cell.selectionStyle = .none
答案 1 :(得分:38)
答案 2 :(得分:11)
// Swift 2.0
cell.selectionStyle = UITableViewCellSelectionStyle.None
答案 3 :(得分:10)
Swift 3.0
cell.selectionStyle = .none
答案 4 :(得分:4)
试试swift
cell?.selectionStyle = UITableViewCellSelectionStyle.None
答案 5 :(得分:4)
目标-C:
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
或
self.selectionStyle = UITableViewCellSelectionStyle.none;
斯威夫特4:
cell.selectionStyle = .none
斯威夫特3:
cell.selectionStyle = UITableViewCellSelectionStyle.None
斯威夫特2:
onTouch
如果您只想使用Storyboard / Xib更改它,只需选择要删除"选择样式效果的单元格"并将其定义为"无"。它也会像魔术一样工作:D
答案 6 :(得分:2)
class YourCell: UITableViewCell {
override func didMoveToSuperview() {
selectionStyle = .none
}
...
}
就这么简单。
答案 7 :(得分:1)
正确答案应该是:
cell.selectedBackgroundView?.backgroundColor = <choose your color>
选择类型是另一种属性,当设置为.none
时,会产生您想要的效果以及其他不需要的副作用。
如果您不希望单元格突出显示 ,则使其背景视图的颜色与未突出显示的颜色相同。
答案 8 :(得分:1)
Swift 5.4 ,只需将 selectionStyle = .none
示例:
class TableViewCell: UITableViewCell {
override func awakeFromNib() {
super.awakeFromNib()
selectionStyle = .none
}
答案 9 :(得分:0)
将TableView选择样式设置为.none
会影响我的应用程序中Tableview的响应能力和性能(didSelectRowAt indexPath
的点击被延迟了)。我对这个问题的解决方案是在首次创建单元格时在awakeFromNib()
上隐藏选定的背景视图:
selectedBackgroundView?.isHidden = true
答案 10 :(得分:0)
迅速5
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
cell.selectionStyle = .none
return cell
}