删除UITableView的单元格高亮颜色

时间:2010-05-07 08:07:02

标签: ios objective-c uitableview

我想删除uitableview单元格选择的默认蓝色。我不希望那里有任何选择颜色。我还没有创建自定义单元类。我通过在其上添加标签和按钮来自定义单元格。 我试过了:

cell.selectioncolor = [UIColor clearcolor];

但它表示不推荐使用此方法。

11 个答案:

答案 0 :(得分:264)

cell.selectionStyle = UITableViewCellSelectionStyleNone;

Swift 4 已更新

cell.selectionStyle = UITableViewCell.SelectionStyle.none

或者

cell.selectionStyle = .none

答案 1 :(得分:38)

StoryboardXIB

中选择此项

enter image description here

答案 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

Storyboard / Xib

答案 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
    }