如何在ios中的scrollViewDidScroll下设置图像更改动画
我在我的项目中有一个水平的如何在ios中的scrollViewDidScroll下设置图像更改动画,ios,swift,uiscrollview,Ios,Swift,Uiscrollview,我在我的项目中有一个水平的CollectionView,其中通过CollectionViewmyImageView的中心索引,图像在scrollviewdidcoll上发生变化。因此,我尝试对图像更改执行转换效果。但它不起作用可能是因为没有足够的延迟。那么,我们需要做些什么呢?这是我的代码: UIView.transition(with: self.votingimageView, duration: 0.3, options: .transitionCrossDissolve, animati
CollectionView
,其中通过CollectionView
myImageView
的中心索引,图像在scrollviewdidcoll
上发生变化。因此,我尝试对图像更改执行转换效果。但它不起作用可能是因为没有足够的延迟。那么,我们需要做些什么呢?这是我的代码:
UIView.transition(with: self.votingimageView, duration: 0.3, options: .transitionCrossDissolve, animations: {
self.votingimageView.image = self.imageArray[self.findCenterIndex()]
}, completion: nil)
我曾尝试将其添加到动画工作的
ScrollViewDiEndDraging
和ScrollViewDiEndDecelling
位置,但我想在每次索引更改时都更改图像,但这不起作用!例如,如果我想从1变为10,我希望我的imageview图像在每次索引更改时都会更改。我认为你的问题有两个解决方案
首次在cellForRows
func中设置动画每次重复使用单元格时,每次调用funccellForRows时仅显示一次动画
第二个为您的collectionView创建页面,如下所示
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我不明白你的第二点!你能解释一下吗。除此之外,我已经在scrollVidDidScroll下调用了我的动画代码