7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

##はじめに
10年以上メンテしてるアプリがあるので、いまだにObjective-Cも使っている今日この頃。
マルチプラットフォームの方がいいので、AppleのSwiftには手を出さずにきたんですが、Lottieを導入してみたら手を出さざるを得なかったので、出しちゃいました。

もう12周年だった。 「PRO.APP」12周年記念!

Lottieとはアプリ/webにアニメを追加できるありがたいモジュールです。After Effectsから変換できます。
WebアニメーションはLottieがオススメ!基本の使い方完全ガイド【2020年版】

##なぜに?
Swift、今まで深く調べたこともなかったんですが、iOSのLottie、Swiftで書かれてて、あ、じゃあ確かObjective-CからSwiftは簡単に呼べるはずなので、呼んでみよー・・・

呼べねー

・・・

なんでもSwiftのライブラリを出すときに、Objective-Cに対応するか選べるんだそうだ。
・・・・対応してよAirbnbさん:joy:

こんな感じですね。

時代かなー。しょうがないのでSwiftでLottie呼ぶコードを作ったよ。まあすぐできたけど。

import Foundation
import UIKit
import Lottie

@objc class MyLottie: NSObject {
    ///アニメ開始
    @objc static func playAnimation(view:UIView, name:String) {
        NSLog("playAnimation MyLottie")
        let animationView = AnimationView(name: name)
        animationView.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height)
        animationView.center = view.center
        animationView.contentMode = .scaleAspectFill
        animationView.animationSpeed = 1

        view.addSubview(animationView)
        animationView.autoresizingMask =
            [.flexibleLeftMargin,
             .flexibleRightMargin,
             .flexibleTopMargin,
             .flexibleWidth,
             .flexibleHeight,
             .flexibleBottomMargin];

        animationView.play()
    }
}

##最後に
巷の情報だけじゃなかなかできなかったので、記事にしておきました。手抜きだけど:stuck_out_tongue_closed_eyes:

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?