删除 UITableView 的单元格突出显示颜色

我想删除 uitableview 单元格选择的默认蓝色。我不希望有任何选择的颜色。我还没有创建自定义单元格类。我通过添加标签和按钮来定制单元格。 我试着这么做:

cell.selectioncolor = [UIColor clearcolor];

但是它说这种方法已经被废弃了。

108813 次浏览

斯威夫特:

cell.selectionStyle = UITableViewCell.SelectionStyle.none

或者简单地说:

cell.selectionStyle = .none
// Swift 2.0


cell.selectionStyle = UITableViewCellSelectionStyle.None

StoryboardXIB属性检查器中,将 Selection设置为 None


Selection: None

试试这个

cell?.selectionStyle = UITableViewCellSelectionStyle.None

Swift 3.0

cell.selectionStyle = .none

目标 C:

cell.selectionStyle = UITableViewCellSelectionStyleNone;


// or


[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Swift 3 + :

cell.selectionStyle = UITableViewCellSelectionStyle.none;


// or


cell.selectionStyle = .none

斯威夫特2:

cell.selectionStyle = UITableViewCellSelectionStyle.None

如果你只想用 Interface Builder 的 Storyboard/Xib 来改变它,选择你想删除“选择样式效果”的单元格,并将其定义为“无”。它也会像魔法一样起作用

Storyboard / Xib

将 TableView 选择样式设置为 .none会影响我的应用程序中 TableView 的响应速度和性能(didSelectRowAt indexPath的点击被延迟了)。我对这个问题的解决方案是在首次创建单元格时隐藏 awakeFromNib()上选定的背景视图:

selectedBackgroundView?.isHidden = true

迅捷5:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
cell.selectionStyle = .none
    

return cell
}

正确答案应该是:

cell.selectedBackgroundView?.backgroundColor = <choose your color>

选择类型是一个不同的属性,当设置为 .none时会产生你想要的加上其他不想要的副作用。

如果不希望单元格为 突出显示,那么使其背景视图的颜色与突出显示 没有时的颜色相同。

做吧 在牢房里:

class YourCell:  UITableViewCell {
    

override func didMoveToSuperview() {
selectionStyle = .none
}


...
}

就这么简单。

斯威夫特5.4,只要把 selectionStyle = .none

例如:

class TableViewCell: UITableViewCell {


override func awakeFromNib() {
super.awakeFromNib()
    

selectionStyle = .none


}