怠慢プログラマーの備忘録

怠慢でナマケモノなプログラマーの備忘録です。

Lottie導入が一瞬だった件[備忘録]

f:id:ka0in:20190110172035p:plain Airbnb社が開発したライブラリ「Lottie」を使ってみました。 実装時間およそ10分です。

www.lottiefiles.com

jsonファイルをダウンロード

上記ページから欲しいアニメーションを選択して右下のダウンロードボタンで取得。

f:id:ka0in:20190110171700p:plain

cocoapodでインストール

def install_pods
  pod 'lottie-ios'
end

target 'taurus-ios-develop' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for taurus-ios-develop
  install_pods
  firebase

end

Bridging-Headerの設定

通常通りBridging-Headerを追加して、#import <Lottie/Lottie.h>を追加します。

f:id:ka0in:20190110172357p:plain

あとは実装

//
//  ViewController.swift
//  taurus-ios
//
//  Created by yutaabe200 on 2018/12/21.
//  Copyright © 2018 CUNELWORK.CO.,LTD. All rights reserved.
//

import UIKit
import Lottie

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let animationView = LOTAnimationView(name: "success.json")
        animationView.frame = CGRect(x: self.view.bounds.width / 2 - 70,
                                     y: self.view.bounds.height / 2 - 180,
                                     width: 140,
                                     height: 140)
    
        animationView.loopAnimation = true
        animationView.contentMode = .scaleAspectFit
        animationView.animationSpeed = 1
        
        self.view.addSubview(animationView)
        animationView.play()
    }
}

f:id:ka0in:20190110180923p:plain

また、loopAnimationをfalseにして、下記のコードのようにするとアニメーション終了をフックできます。

animationView.play{ (finished) in
  // Do Something
}

細かいプロパティなどはこちらにあるそうです。

github.com

詳細! Swift iPhoneアプリ開発入門ノート iOS12 + Xcode 10対応

詳細! Swift iPhoneアプリ開発入門ノート iOS12 + Xcode 10対応