让 UITableViewCell 短暂闪烁

Make UITableViewCell flash briefly

我有一个 UITableView 设置,我正在探索突出显示 UITableViewCell 的所有不同选项,我想知道以下内容:

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        .
        .
    cell.selectionStyle = .gray
    return cell
}

现在发生的情况是,当一个单元格被选中时,它会以灰色突出显示,我想知道,是否可以在大约 0.5 秒后取消选择该单元格?

基本上是否可以使单元格仅短暂闪烁,以便用户知道他与单元格进行了交互,但它不会保持选中状态?我将此 tableView 用作侧边菜单,保持突出显示不是我想要的行为。

谢谢!

终于让它工作了,我所做的是:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
 tableView.cellForRow(at: indexPath)?.backgroundColor = .gray
    DispatchQueue.main.asyncAfter(deadline: .now()) {
        UIView.animate(withDuration: 0.5, animations: {
            tableView.cellForRow(at: indexPath)?.backgroundColor = .none
        })
    }

也许这会对其他人有所帮助。唯一的问题是,点击的单元格在按下时不会突出显示,只有在手势结束后(即仅点击)。如果有人对此有解决方案,我将不胜感激,但现在就可以了。

您可以取消选择 didSelectRow 方法中的行,单元格将突出显示,然后选择将淡出,让用户知道他们与单元格进行了交互。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  tableView.deselectRow(at: indexPath, animated: true)
  // Do whatever else you need
}