如何在ios中的scrollViewDidScroll下为图像更改设置动画

时间:2017-01-29 13:23:27

标签: ios swift uiscrollview

我的项目中有一个水平CollectionViewCollectionView我的ImageView图片的中心索引在scrollViewDidScroll上发生变化。所以我试图对我的图像更改执行过渡效果。但它不起作用可能是因为没有足够的延迟。那可能是什么工作呢?这是我的代码:

UIView.transition(with: self.votingimageView, duration: 0.3, options: .transitionCrossDissolve, animations: {

                    self.votingimageView.image = self.imageArray[self.findCenterIndex()]


            }, completion: nil)

我试图在动态有效的scrollViewDidEndDraggingscrollViewDidEndDecelerating上添加它,但我想在每次无效的索引更改时更改图像!例如,如果我想从1到10,我希望我的imageview图像在每次索引更改时都会被更改。

1 个答案:

答案 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一次调用动画发生