我有一个tableview,当我收到一条消息时,它重新加载,然后我希望收到消息的单元格改变其背景颜色一秒钟,然后改回以前的颜色(有或没有淡入/淡出)< / p>
我知道哪个单元格收到了带有该代码的消息:
if changeCell == indexPath.row {
cell.viewCell.backgroundColor = UIColor.red
}
viewCell是一个视图,我放在单元格中更容易更改单元格的背景颜色
我经常搜索它,但是每个解决方案都以UIView.animate
开头....当我把它改成了我的tableview之外的视图颜色
答案 0 :(得分:2)
UIView动画系列方法就是你想要的。
let oldColor = cell.viewCell.backgroundColor
UIView.animate(withDuration: 0.5, animations: {
cell.viewCell.backgroundColor = UIColor.red
}, completion: { _ in
UIView.animate(withDuration: 0.5) {
cell.viewCell.backgroundColor = oldColor
}
})
答案 1 :(得分:2)
为动画添加以下选项:
示例:
fileprivate var color1 = UIColor.clear
fileprivate var color2 = UIColor.red
fileprivate func animateCell(_ cell: UITableViewCell) {
UIView.animate(withDuration: 1.0, delay: 0.0, options: [.transitionCrossDissolve, .allowAnimatedContent], animations: {
cell.contentView.backgroundColor = self.color2
}) { (_) in
UIView.animate(withDuration: 1.0, animations: {
cell.contentView.backgroundColor = self.color1
})
}
}
答案 2 :(得分:0)
我通过在单元格中添加UIImageView并设置其Alpha来解决此问题。我无法设置backgroundColor进行动画处理。