Lottieとは
作成したアニメーションをjsonファイルに変換して、それをアプリに組み込むことができるライブラリです。
多くのアニメーションが公開されており、既存アニメーションのjsonファイルをダウンロードすることができます。
会員登録が必要ですが、無料でも多くのアニメーションを使用することができます。
登録、アニメーションの検索、jsonファイルのダウンロードはこちら。
完成図
今回の記事では、以下のような動きを目指します。
フレームワークのインストール
podfileに以下を追加して、pod installを実行しましょう。
pod 'lottie-ios'
アニメーションを表示したいClassにインポートします。
import Lottie
アニメーションを表示してみる
表示したいアニメーションのjsonファイルを、Lottieのサイトからダウンロードします。
ここで使用しているアニメーションはこちら。
取得したファイルをXcode上に追加します。
xibファイルでUIViewを設置し、swiftファイルに紐付けます。
class TopViewController: UIViewController {
@IBOutlet weak var heartView: UIView!
//AnimationViewを宣言
var animationView = AnimationView()
override func viewDidLoad() {
super.viewDidLoad()
//UIViewにアニメーションを追加
addAnimationView()
}
//UIViewにアニメーションを追加する関数
func addAnimationView() {
animationView = AnimationView(name: "7805-hearts")
animationView.frame = CGRect(x: heartView.bounds.minX, y: heartView.bounds.minY, width: heartView.frame.width, height: heartView.frame.height)
heartView.addSubview(animationView)
animationView.play()
}
}
addAnimationView関数の1行目の、「AnimationView(name: “”)」の引数には、jsonファイルのファイル名を入れてください。
ただし、拡張子(.json)は要りません。
任意のタイミングでアニメーションを開始する
Buttonがタップされたタイミングでアニメーションを開始したい場合は、下記のような書き方になります。
class TopViewController: BaseViewController {
@IBOutlet weak var heartView: UIView!
@IBAction func touchedAnimationButton(_ sender: UIButton) {
animationView.play()
}
//AnimationViewを宣言
var animationView = AnimationView()
override func viewDidLoad() {
super.viewDidLoad()
//UIViewにアニメーションを追加
addAnimationView()
}
//UIViewにアニメーションを追加する関数
func addAnimationView() {
animationView = AnimationView(name: "HeartAnimation")
animationView.frame = CGRect(x: heartView.bounds.minX, y: heartView.bounds.minY, width: heartView.frame.width, height: heartView.frame.height)
heartView.addSubview(animationView)
}
}
アニメーションが一回終わったら、Viewを消す
アニメーションが終わった時点でそのViewを消したい場合は、ボタンがタップされた時の処理を下記の様に変更します。
@IBAction func touchedAnimationButton(_ sender: UIButton) {
addAnimationView()
animationView.play { finished in
if finished {
self.animationView.removeFromSuperview()
}
}
}
いかがでしたでしょうか。
アニメーションを1から作ってアプリに使用するのはとても時間がかかりますよね。
Lottieを使えばアニメーション作成の手間を簡単に削減できるのでオススメです。
ABOUT ME
株式会社Playgroundのサービス
- 無料・簡単・片手でホームページを作成できる自社サービス Rakwi
- Web制作とアプリ開発を学べるオンラインプログラミング講座 Upstairs
- 開発,DX推進支援サービス スタートアッププラン