当我点击它们时,为什么我的UITableViewCells会变灰?

Chr*_*ter 17 uitableview ios swift

当我点击表格视图的单元格时,它们变暗为灰色,并且在我点击不同的单元格之前不会变回白色.是否有某种布尔值我必须设置它不这样做?

这是一个解释我的问题的截图:

在此输入图像描述

与其他网站的链接将有所帮助,如果它意味着更详细的描述.(除非它是一个超级简单的修复,否则正确的代码或步骤将比链接更容易.)

小智 38

这是UITableView的默认行为.

您必须deselectRowAtIndexPathdidSelectRowAtIndexPathUITableViewController类内部调用.

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
Run Code Online (Sandbox Code Playgroud)

查看iOS文档以获取更多信息.

UITableView
UITableViewDelegate

  • 正确的解决方案是:cellForRowAt方法中的** cell.selectionStyle = .none ** (2认同)

MBH*_*MBH 22

斯威夫特3

选项1 :(我总是使用)

要在使用灰色选择后淡出动画,您可以执行以下操作:

func tableView(_ tableView: UITableView, 
         didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)
}
Run Code Online (Sandbox Code Playgroud)

选项2:

要完全删除高亮效果,您可以将此行添加到cellForRowAt:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = .....
    cell.selectionStyle = .none
    return cell
}
Run Code Online (Sandbox Code Playgroud)

  • 您的选项 2 帮助我解决了在设置颜色之前闪烁灰色背景效果的问题。非常感谢! (5认同)

Ant*_*ito 12

你可以通过几种方式做到这一点......

  1. tableView.allowsSelection = false

  2. 您可以在xCode Storyboard中将tableView设置为在第四个选项卡下没有任何选择.

  3. 或者,您可以在单元格上执行此操作 cell.selectionStyle = UITableViewCellSelectionStyle.None

你想要的最终将是关于你正在追求什么样的行为.做一点实验.