我正在开发一个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,这很奇怪。我哪里错了?
抱歉。忘了张贴答案。
我完成了像这样的协调动画,然后动画了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)})
什么是期望的效果?你是想尝试用新图像来淡化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")
}
在Swift 4或Swift 5中使用:.curveEaseIn
UIView.animate(withDuration: 1.0, delay: 0.0, options: .curveEaseIn, animations: {
...
}) { (finished) in
...
}