UIViewAnimationOptions.CurveEaseIn不在协调动画内部工作

问题描述 投票:2回答:3

我正在开发一个tvOS应用程序。

在我的申请中,我有一个UICollectionView。焦点我正在使用协调动画。在那个动画里面我有这个代码:

UIView.animateWithDuration(1.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
                    self.bg.image = finalImage
                    self.bg.alpha = 1.0
                    }, completion: nil)

但它似乎没有使用curveEaseIn动画选项。

它直接改变了alpha,这很奇怪。我哪里错了?

swift uicollectionviewcell uiviewanimation tvos
3个回答
0
投票

抱歉。忘了张贴答案。

我完成了像这样的协调动画,然后动画了imageview

   self.bg.alpha = 0.0
   coordinator.addCoordinatedAnimations({ //code for coordinated animation}, completion: { _ in

                UIView.animateWithDuration(1.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
                    self.bg.image = self.finalImage
                    self.bg.alpha = 1.0
                    }, completion: nil)})

0
投票

什么是期望的效果?你是想尝试用新图像来淡化bg.image吗?您是否尝试将持续时间更改为更高的值,例如10.0,以查看动画是否可能发生得太快?

以下是您可能正在寻找的示例:

let myImageView = UIImageView()
let myFinalImage = UIImage(named:"FinalImage.png")

// Animate alpha
UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseIn, animations: {
    print("alpha animation started")
    myImageView.alpha = 0.0
    }) { (finished) in
        print("alpha animation finished")
}

// Animate change of image
UIView.transitionWithView(myImageView, duration: 1.0, options: .TransitionCrossDissolve, animations: {
    print("cross dissolve animation started")
    myImageView.image = myFinalImage
    }) { (finished) in
        print("cross dissolve animation finished")
}

-1
投票

在Swift 4或Swift 5中使用:.curveEaseIn

UIView.animate(withDuration: 1.0, delay: 0.0, options: .curveEaseIn, animations: {
              ...
        }) { (finished) in
             ...
        }
© www.soinside.com 2019 - 2024. All rights reserved.