カテゴリー: iOS

[Swift3]で直感的にアニメーションが記述できるライブラリ「Cheetah」

はじめに

こんにちは、nukkyです。
今回は、仕事でViewのアニメーションを
多用する機会があったので
そこで使用したライブラリ「Cheetah」を紹介したいと思います。

準備

おなじみCarthageを使用します。

Cartfileにこちらを記述します、

github "suguru/Cheetah"

そうしたら、以下のコマンドでビルドしてください。

carthage update --platform iOS

実装

準備

まずは「Cheetah」をインポートします。

import Cheetah

次にViewを表示します、
今回は動きが分かりやすいように正四角形で用意します。

let box = UIView(frame:CGRect(x: 100, y: 100, width: 100, height: 100))
box.backgroundColor = UIColor.blue
self.view.addSubview(box)

移動

まずは単純に移動させてみます。
以下のコードで右方向に移動します。

box.cheetah.move(100, 0).run()

連続で移動させたい場合は以下のようにします。

// 右に移動した後、初期位置に帰ってくる
box.cheetah
    .move(100, 0)
    .wait()
    .move(-100, 0)
    .run()

moveの後にmoveを実行したいときはwait()を挟んでください。

回転と拡大

回転と拡大は以下のように行います。

box.cheetah.rotate(M_PI).scale(1.5).run()

回転はrotate、拡大はscaleを使用します。
当然、移動とも絡めることができるので、
上の連続移動のサンプルに追記して、
右回転で右に移動しながら拡大し、
左回転で初期位置に縮小しながら戻るようにします。

box.cheetah
    .move(100, 0)
    .rotate(M_PI)
    .scale(1.5)
    .wait()
    .move(-100, 0)
    .rotate(-M_PI)
    .scale(1.0)
    .run()

速度調整

アニメーションの速度調整は以下のように行います。

box.cheetah.move(100, 0).duration(0.5).delay(2).run()

durationでアニメーションの速度、
delayでアニメーションを実行するまでの遅延を指定できます。
この場合runから2秒後にアニメーションが開始され、
その後、0.5秒でアニメーションが終了するように実行されます。

繰り返し

アニメーションの繰り返しは回数指定と
永続指定の2種類用意されています。

// 回数指定
box.cheetah.rotate(M_PI).repeatCount(3).run()
// 永続
box.cheetah.rotate(M_PI).forever.run()

注意事項として、repeatCountは最初の実行回数は含まれていないので
repeatCount(3)と指定するとアニメーションは4回実行されます。

アニメーションの終了

アニメーションの終了は以下の形で受け取ります。

box.cheetah.completion({ () -> Void in
    print("アニメーション完了")
})

ちなみにアニメーションの終了は繰り返し指定していても
一回のループが終わるたびに検知されるので気をつけてください。
(repeatCount(3)と指定した場合4回終了が検知されます)

 

さいごに

「Cheetah」いかがだったでしょうか、
まだまだ、今回紹介しきれなかった機能は一杯あるのですが
基本的な使い方は紹介出来たと思います。
かなり直感的かつ簡単にアニメーションが書けるので
アニメーションを多用するアプリには
是非、使ってみて頂ければと思います。

nukky

シェア
執筆者:
nukky
タグ: Swift

最近の投稿

フロントエンドで動画デコレーション&レンダリング

はじめに 今回は、以下のように…

3週間 前

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとあ…

1か月 前

【Xcode15】プライバシーマニフェスト対応に備えて

はじめに こんにちは、suzu…

2か月 前

FSMを使った状態管理をGoで実装する

はじめに 一般的なアプリケーシ…

3か月 前