在 Swift 中设置动画 UITableViewCell 突出显示颜色
Posted
技术标签:
【中文标题】在 Swift 中设置动画 UITableViewCell 突出显示颜色【英文标题】:Set animated UITableViewCell highlight color in Swift 【发布时间】:2018-10-21 10:14:01 【问题描述】:默认情况下,UITableViewCell
的高亮效果如下所示:
我正在寻找一种类似的效果,而不是灰色是一种自定义颜色(例如 UIColor
默认红色值)。我尝试使用 setHighlighted
委托自己实现这一点,但它不会产生默认样式的动画效果。
这是我使用过的代码和达到的不希望的效果:
override func setHighlighted(_ highlighted: Bool, animated: Bool)
super.setHighlighted(highlighted, animated: animated)
if highlighted
self.backgroundColor = .red
在cellForRowAt
中设置cell.selectionStyle = .none
。
有什么方法可以产生类似原生的动画自定义高亮颜色?
【问题讨论】:
【参考方案1】:您需要为您的“if”条件添加另一个条件“else”,并将红色背景颜色清除为正常。
if highlighted
self.backgroundColor = .red
else
self.backgroundColor = .white
【讨论】:
嘿米娜。我确实知道,我想要实现的是类原生动画。【参考方案2】:(已编辑) 您可以使用手势来模拟本机的行为,如下所示:
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 )
【讨论】:
嘿艾哈迈德,这不是我遇到的问题。我希望复制类似原生的动画。以上是关于在 Swift 中设置动画 UITableViewCell 突出显示颜色的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 Swift 在 UITableView 中的部分标题的 UIView 中设置 UILabel 的文本
在 Swift 中设置动画 UITableViewCell 突出显示颜色
如何在静态 UITableView 中设置 detailTextLabel.text?