我的项目中有一个水平CollectionView
,CollectionView
我的ImageView
图片的中心索引在scrollViewDidScroll
上发生变化。所以我试图对我的图像更改执行过渡效果。但它不起作用可能是因为没有足够的延迟。那可能是什么工作呢?这是我的代码:
UIView.transition(with: self.votingimageView, duration: 0.3, options: .transitionCrossDissolve, animations: {
self.votingimageView.image = self.imageArray[self.findCenterIndex()]
}, completion: nil)
我试图在动态有效的scrollViewDidEndDragging
和scrollViewDidEndDecelerating
上添加它,但我想在每次无效的索引更改时更改图像!例如,如果我想从1到10,我希望我的imageview图像在每次索引更改时都会被更改。
答案 0 :(得分:0)
我认为你问题的解决方案
每次重复使用单元格时,首先在cellForRows~
func中进行动画显示每个调用func cellForRows
只显示一次动画
第二个make collection页面如下所示
var page: Int {
didSet {
//update cell's animation when really page was changed
if page != oldValue {
//call animation for page 1~10 (your example)
}
}
}
并在scrollVidDidScroll
func scrollViewDidScroll(_ scrollView: UIScrollView) {
page = Int(round(Double(scrollView.contentOffset.x) / Double(scrollView.bounds.size.width)))
}
如果您将collectionView索引0滚动到10
页面改为0,1,2,3,4,...每页9,10一次调用动画发生