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 })
}
}
嗨,米娜。我知道,我想要的是本土风格的动画。嘿,艾哈迈德,这不是我的问题。我希望复制像本地动画一样的动画。