前提・実現したいこと
LottieのアニメーションをModelクラスで実装したいです。
Modelクラスの方でViewControllerクラスのViewの情報を含んだメソッドを記述する際はどのように記述すれば良いのでしょうか?
未熟者で恐れ入りますが、ご教授下されば幸いです。
発生している問題・エラーメッセージ
EXC_BAD_ACCESS (code=2, address=0x7ffee373af48)
該当のソースコード
swift5
1import Foundation 2import Lottie 3import UIKit 4 5class AnimationModel{ 6 7 let vc = RegisterViewController() 8 9 //LottieのAnimationViewを宣言 10 var animationView = AnimationView() 11 12 func startAnimation(){ 13 14 let animation = Animation.named("loading") 15 16 animationView.frame = CGRect(x: 0, y: 0, width: vc.view.frame.size.width, height: vc.view.frame.size.height/1.5) 17 18 animationView.animation = animation 19 animationView.contentMode = .scaleAspectFit 20 animationView.loopMode = .loop 21 animationView.play() 22 23 vc.view.addSubview(animationView) 24 } 25 26 func stopAnimation(){ 27 28 animationView.removeFromSuperview() 29 } 30}
import UIKit import Firebase import Lottie class RegisterViewController: UIViewController { let animation = AnimationModel() @IBOutlet weak var emailTextField: UITextField! @IBOutlet weak var passwordTextField: UITextField! //LottieのAnimationViewを宣言 //var animationView = AnimationView() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } @IBAction func registerNewUser(_ sender: Any) { //アニメーションのスタート animation.startAnimation() // //新規登録 // Auth.auth().createUser(withEmail: emailTextField.text!, password: passwordTextField.text!) { (user, error) in // // if error != nil{ // print(error as Any) // }else{ // print("新規登録が完了しました") // // //アニメーションのストップ // self.stopAnimation() // } // } } // func startAnimation(){ // // let animation = Animation.named("loading") // // animationView.frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: view.frame.size.height/1.5) // // animationView.animation = animation // animationView.contentMode = .scaleAspectFit // animationView.loopMode = .loop // animationView.play() // // view.addSubview(animationView) // } // // func stopAnimation(){ // // animationView.removeFromSuperview() // } }
試したこと
AnimationModelクラスにRegisterViewControllerクラスをインスタンス化させて実装したのですが、
インスタンス化の無限ループになり実装できませんでした。
回答1件
あなたの回答
tips
プレビュー