默认情况下,UITableViewCell
的突出显示效果如下:
我正在寻找一种类似的效果,即自定义颜色(例如UIColor
默认红色值)代替了灰色。我尝试使用setHighlighted
委托自己实现此功能,但它不会产生默认样式的动画效果。
这是我使用的代码,并且实现了不希望的效果:
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
super.setHighlighted(highlighted, animated: animated)
if highlighted {
self.backgroundColor = .red
}
}
在cell.selectionStyle = .none
中的cellForRowAt
旁边设置。
有什么方法可以产生类似本机的动画自定义突出显示颜色?
答案 0 :(得分:1)
您需要为“ if”条件添加另一个条件“ else”,并将红色背景色清除为正常。
if highlighted {
self.backgroundColor = .red
}else {
self.backgroundColor = .white
}
答案 1 :(得分:0)
(已编辑) 您可以使用手势来模拟本地用户的行为,如下所示:
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 })
}
}