FaceID 인증 및 Lottie 애니메이션

13208 단어 Swift

FaceID 인증 및 Lottie 애니메이션





기능 설명


  • FaceID 인증을 지우면 화면 전환 대상에서 Lottie 애니메이션을 재생합니다.

    Info.plist


  • Privacy - Face ID Usage Description 추가

  • 코드


  • Podfile에 pod 'lottie-ios' 를 입력

  • Podfile
     pod 'lottie-ios'
    

    ViewController (FaceID 구현)


  • import LocalAuthentication 입력
  • 사용중인 iOS 기기가 FaceID 인증 (얼굴 인증)을 지원하는지 LAContext Class를 사용하여 확인합니다.
  • FaceID를 지원하는지 확인하기 위해 LAContext가 가지고있는 canEvaluatePolicy() 메서드를 사용합니다.

    ViewController
    import UIKit
    import LocalAuthentication
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
        }
    
        @IBAction func faceID(_ sender: Any) {
    
            let context = LAContext()
            var error: NSError? = nil
    
            if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
    
                let reason = "touch id!"
                context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) { [self] success, error in
                    DispatchQueue.main.async { [self] in
    
                        guard success, error == nil else{
                             //認証失敗時
                            self.alert(titleString: "!!!Faild!!!", messageString: "FaceID認証に失敗しました")
    
                            return
    
                         }
                              //認証成功時
                            self.alert(titleString: "!!!Succesd!!!", messageString: "FaceID認証に成功しました")
                         }
                      }
                  }
        }
    
        func alert(titleString:String,messageString:String){
    
            let alert = UIAlertController(title: titleString, message: messageString, preferredStyle: .alert)
    
            alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { _ in
    
                let LottieVC = self.storyboard?.instantiateViewController(identifier: "LottieVC") as! LottieViewController
    
                self.navigationController?.pushViewController(LottieVC, animated: true)
    
            }))
    
            present(alert, animated: true, completion: nil)
    
        }
    }
    

    LottieViewController (Lottie 애니메이션 구현)


  • import Lottie 입력
  • AnimationView 클래스의 인스턴스 만들기
  • animationView.frame = CGRect(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat) 에서 애니메이션을 표시 할 범위를 만듭니다
  • animationView.animation = 表示したいアニメーションデータ 표시 할 애니메이션 데이터를 설정합니다.
  • animationView.loopMode = .loop 반복 재생되도록 설정
  • animationView.play()에서 재생
  • animationView.stop() 에서 애니메이션 중지

  • LottieViewController
    import UIKit
    import Lottie
    
    class LottieViewController: UIViewController {
    
        let animationView = AnimationView()
        let lottieAnimation = Animation.named("Lottieアニメーションのデータ")
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            createLottie()
    
        }
    
        override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
    
            self.navigationController?.isNavigationBarHidden = true
    
        }
    
        func createLottie(){
    
            animationView.frame = CGRect(x: 0, y: 88, width: 442, height: 412)
    
            animationView.animation = lottieAnimation
            animationView.contentMode = .scaleToFill
            animationView.loopMode = .loop
            animationView.play()
            view.addSubview(animationView)
    
        }
    
        @IBAction func back(_ sender: Any) {
    
            animationView.removeFromSuperview()
            animationView.stop() //アニメーションをストップ  
    
            let VC = self.storyboard?.instantiateViewController(identifier: "VC") as! ViewController
    
            self.navigationController?.pushViewController(VC, animated: true)
    
        }
    }
    



    상당히 간단하게 애니메이션을 할 수 있어 즐겁습니다.
    지적 등이 있으면, 코멘트까지 부탁합니다.

    좋은 웹페이지 즐겨찾기