如何禁用 UITableViewCell 突出显示?
Posted
技术标签:
【中文标题】如何禁用 UITableViewCell 突出显示?【英文标题】:How to disable UITableViewCell highlighting? 【发布时间】:2016-07-20 18:49:35 【问题描述】:我有一个带有透明表格视图的深灰色视图背景。我正在使用以下代码尝试在单击单元格时停止单元格突出显示。它可以工作,除非在最初单击单元格时,我看到一个突出显示。之后我过渡到另一个场景。当我回来时,单元格没有突出显示。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
var selectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
selectedCell.contentView.backgroundColor = UIColor.clearColor()
tableView.deselectRowAtIndexPath(indexPath, animated: true)
如何禁用仍在进行的初始单元格突出显示?
【问题讨论】:
设置cell.selectionStyle = UITableViewCellSelectionStyleNone;
点击此链接:link
【参考方案1】:
设置 UITableViewCell 选择样式无
cell.selectionStyle = .None
【讨论】:
这需要双击来选择。【参考方案2】:我发现其他答案对我不起作用,因为它们需要双击才能选择。这确实有效。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
tableView.deselectRow(at: indexPath, animated: true)
【讨论】:
【参考方案3】:UITableViewDelegate
有处理单元格高亮的方法,可能
tableView(_:shouldHighlightRowAt:)
就是你要找的东西
查看documentation 了解其他方法
【讨论】:
【参考方案4】:防止突出显示的最简单方法是将selectionStyle
设置为None
。以下是如何实现这一点:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
cell.selectionStyle = .None
return cell
【讨论】:
以上是关于如何禁用 UITableViewCell 突出显示?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS SDK 中禁用 UIView/UIViewController 的“突出显示子视图”消息?
如何使 UITableViewCell 突出显示状态持续存在
如何选择并突出显示 UICollectionView,如 UITableViewCell?