🤖

Swift Animation Memo

2023/07/19に公開

終了を検知して終了時に処理を行う

import UIKit
import Lottie

class ViewController: UIViewController {

    let animationView = AnimationView()

    override func viewDidLoad() {
        super.viewDidLoad()

        // Lottieアニメーションをロードして表示
        animationView.animation = Animation.named("your_animation_file") // アニメーションファイル名(拡張子なし)
        animationView.frame = CGRect(x: 0, y: 0, width: 200, height: 200) // アニメーションビューのサイズ
        animationView.center = view.center
        animationView.contentMode = .scaleAspectFill
        view.addSubview(animationView)

        // アニメーション再生終了時の処理を設定
        animationView.loopMode = .playOnce // 1回再生して停止
        animationView.play { [weak self] (_) in
            // アニメーション再生が終了したときの処理
            self?.handleAnimationCompletion()
        }

        // 最初のアニメーションを開始
        animationView.play()
    }
    
    func handleAnimationCompletion() {
        // アニメーション終了時の処理を記述
        print("Animation Completed")

        // 再度アニメーションをスタートさせる
        animationView.play { [weak self] (_) in
            // アニメーション再生が終了したときの処理(必要に応じて再度コールバックを追加)
            self?.handleAnimationCompletion()
        }
    }
}

Discussion