Ios 点击时无法设置选定集合视图单元格的动画
这是一个简单的问题,我似乎无法解决这个问题 我在集合视图中有一个单元格列表,当我点击它时,我只希望单元格高亮显示一段时间,然后消失,只需点击一个动画即可 我试着在didSelectItemAt中更改背景,但它似乎突出显示了错误的单元格Ios 点击时无法设置选定集合视图单元格的动画,ios,swift,uicollectionview,uicollectionviewcell,Ios,Swift,Uicollectionview,Uicollectionviewcell,这是一个简单的问题,我似乎无法解决这个问题 我在集合视图中有一个单元格列表,当我点击它时,我只希望单元格高亮显示一段时间,然后消失,只需点击一个动画即可 我试着在didSelectItemAt中更改背景,但它似乎突出显示了错误的单元格 override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { let cell = collectionView.c
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath)
UIView.animate(withDuration: 0.5, animations: {
cell?.backgroundColor = .lightGray
}, completion: {
(value: Bool) in
cell?.backgroundColor = .white
})
}
我还尝试了从堆栈中找到的多个东西,但都不起作用。BackgroundColor对于任何单元格都不可设置动画。一种解决方案是设置背景视图颜色并设置其alpha动画。您还可以插入自己的视图作为背景,并在相反方向上设置其字母的动画,以创建更改
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt
indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath)
UIView.animate(withDuration: 0.5, animations: {
cell?.backgroundColor = UIColor.lightGray.cgColor
}, completion: {
(value: Bool) in
cell?.layer.backgroundColor = UIColor.white.cgColor
})
}
- 您可以使用建议的
属性来显示这一点alpha
UIView.animate(withDuration: 0.5, animations: { cell.backgroundColor = .darkGray cell.alpha = 0.7 }, completion: { (value: Bool) in cell.alpha = 1 }) }