一枚のUIImageViewで画像の入れ替えアニメーションを行う
コードは以下の通りです
let transition = CATransition() transition.duration = 0.75 transition.type = kCATransitionFade self.myImageView.image = UIImage(named: "image2.png") self.myImageView.layer.add(transition, forKey: nil)
また以下のコードでアニメーションの終了タイミングを取得することができます
CATransaction.begin() CATransaction.setCompletionBlock({ // 終了時に呼ばれる }) let transition = CATransition() transition.duration = 0.75 transition.type = kCATransitionFade self.thumbnailImage.image = UIImage(named: "image2.png") self.thumbnailImage.layer.add(transition, forKey: nil) CATransaction.commit()
delegateも用意されている
class Myclass { func startAnimation() { let transition = CATransition() transition.duration = 0.75 transition.type = kCATransitionFade transition.delegate = self self.thumbnailImage.image = UIImage(named: "image2.png") self.thumbnailImage.layer.add(transition, forKey: nil) } } extension Myclass: CAAnimationDelegate { func animationDidStop(_ anim: CAAnimation, finished flag: Bool) { print("アニメーション終了") }