如何禁用UITableViewCell突出显示?

时间:2016-07-20 18:49:35

标签: ios uitableview swift2

我有一个带有透明桌面视图的深灰色视图背景。我正在使用以下代码尝试在单击单元格时停止单元格突出显示。除了最初点击单元格时,它才有效,我看到了一个亮点。然后我转换到另一个场景。当我回来时,细胞不会突出显示。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var selectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
    selectedCell.contentView.backgroundColor = UIColor.clearColor()
    tableView.deselectRowAtIndexPath(indexPath, animated: true)
}

如何禁用仍在进行的初始单元格突出显示?

4 个答案:

答案 0 :(得分:8)

设置UITableViewCell选择样式无

cell.selectionStyle = .None

答案 1 :(得分:3)

<ul class="nav"> <li class="top"><a class="top_link">Grades</a> <ul class="sub"> <li><a class="fly">Grade 1</a></li> </ul> </li> </ul> 可能有处理细胞突出显示的方法 您正在寻找.nav { list-style: none; position: relative; } .nav ul { visibility: hidden; opacity: 0; transition-property: visibility, opacity; -moz-transition-property: visibility, opacity; -webkit-transition-property: visibility, opacity; transition-timing-function: linear; -moz-transition-function: linear; -webkit-transition-function: linear; transition-duration: 0s, 0.5s; -moz-transition-duration: 0s, 0.5s; -webkit-transition-duration: 0s, 0.5s; transition-delay: 0.5s, 0s; -moz-transition-delay: 0.5s, 0s; -webkit-transition-delay: 0.5s, 0s; } .nav li { position: relative; } .nav li.top { float: left; } .nav li a.top_link { float: left; height: 36px; } .nav ul { position: absolute; visibility: hidden; } .nav li:hover > ul { visibility: visible; opacity: 1; transition-duration: 0s; -moz-transition-duration: 0s; -webkit-transition-duration: 0s; transition-delay: 0s; -moz-transition-delay: 0s; -webkit-transition-delay: 0s; } .nav li ul.sub { background: #fff; white-space: nowrap; left: 0; top: 100%; }

检查documentation以了解其他方法

答案 2 :(得分:3)

我发现其他答案对我不起作用,因为他们需要双击才能选择。这确实有用。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

tableView.deselectRow(at: indexPath, animated: true)

答案 3 :(得分:2)

阻止突出显示的最简单方法是将selectionStyle设置为None。以下是您如何实现这一目标:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
    cell.selectionStyle = .None
    return cell
}