Ios 在Swift中设置动画UITableViewCell高亮显示颜色

Ios 在Swift中设置动画UITableViewCell高亮显示颜色,ios,swift,uitableview,uikit,Ios,Swift,Uitableview,Uikit,默认情况下,UITableViewCell的突出显示效果如下: 我正在寻找一种类似的效果,它是一种自定义颜色,而不是灰色(例如UIColor默认红色值)。我曾尝试使用setHighlighted委托自己实现这一点,但它没有产生默认样式所产生的动画效果 这是我使用过的代码和达到的不期望的效果: override func setHighlighted(_ highlighted: Bool, animated: Bool) { super.setHighlighted(highlighted

默认情况下,
UITableViewCell
的突出显示效果如下:

我正在寻找一种类似的效果,它是一种自定义颜色,而不是灰色(例如
UIColor
默认红色值)。我曾尝试使用
setHighlighted
委托自己实现这一点,但它没有产生默认样式所产生的动画效果

这是我使用过的代码和达到的不期望的效果:

override func setHighlighted(_ highlighted: Bool, animated: Bool) {
  super.setHighlighted(highlighted, animated: animated)

  if highlighted {
    self.backgroundColor = .red
  }
}
cellForRowAt
中设置
cell.selectionStyle=.none


有没有办法产生一种像本地动画一样的自定义高亮颜色?

您需要为“if”条件添加另一个条件“else”,并将红色背景颜色清除为正常

  if highlighted {
    self.backgroundColor = .red
  }else { 
    self.backgroundColor = .white
  }
(编辑) 你可以用手势来模拟当地人的行为,比如:

  let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: "longPressed:")
yourCell.view.addGestureRecognizer(longPressRecognizer)

  func longPressed(sender: UILongPressGestureRecognizer)
   {
        if sender.state == .began {
            yourCell.animate(withDuration: 0.2, delay:0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEeaseOut, animations: { yourCell.backgroundColor = .red })

        }
        if sender.state == .ended {
            yourCell.animate(withDuration: 0.2, delay:0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEeaseOut, animations: { yourCell.backgroundColor = .white })
        }
   }

嗨,米娜。我知道,我想要的是本土风格的动画。嘿,艾哈迈德,这不是我的问题。我希望复制像本地动画一样的动画。