LoginSignup
94
94

More than 5 years have passed since last update.

ソースコードを一切書かなくてもアニメーション処理ができるCanvasがおもしろい

Last updated at Posted at 2014-04-06

この内容は個人ブログに掲載したものですが、少しでもたくさんの方に見ていただきたいので、Qiitaにも掲載することにしました。

20140405233909.png

概要

ソースコードを一切書かなくてもアニメーションのエフェクトをUIViewに設定できるライブラリです。ちょっとしたアニメーションさせたい時などに使えそうです。

種類はまだ多くないですが、アニメーション処理をUIViewControllerから完全に分離できるのでコンセプトはとてもよいと思います。
現在サポートしているアニメーションの種類については上記サイトで確認できます。

導入手順

CocoaPodsでインストールできるのでPodfileを作成します。

platform :ios, '7.0'

pod 'Canvas', '~> 0.1'

次にインストールです。

pod install

導入は以上でオッケーです。

アニメーション設定手順

アニメーションに関する設定はInterface Builderで行うので、その設定方法を紹介します。
まず下記の項目を設定します。

Key Path Type 説明
type Number アニメーションの種類
duration Number アニメーションを実行する時間
delay Number 設定した時間経過後にアニメーションを実行
pauseAnimationOnAwake Boolean チェックすると初期表示時にアニメーションを実行しない

アニメーションを実行したいUIViewのクラスをCSAnimationViewに変更します。
設定内容は下記を参考にしてください。

20140405233258.png

アニメーション実行手順

CSAnimationViewを設定したUIView、またはその親となるUIViewのstartCanvasAnimationメソッドを実行することでアニメーションさせることができます。

[self.animationView startCanvasAnimation];

このメソッドは指定したUIViewのSubview中でCSAnimationViewが設定されているものがあれば全て実行してくれます。
下記を参照してもらえばstartCanvasAnimationメソッドが実行されているのが確認できるので興味がある方は見てみてください。

実際に使用するアニメーションタイプはこちらのソースコードを参照してください。

またアニメーションの実装はCSAnimationに定義してあるので、どのような処理をしてるかはここを見れば確認できます。

まとめ

アニメーション処理とUIViewControllerを完全に分離できるのでメリットは大きいと思います。
課題としてはアニメーションの種類が少ない点と独自で作ったアニメーションをこのライブラリに手をいれずに追加する方法が公式に用意されていない点が上げられます。(この部分はCAAnimationクラスを継承するなどで対応できるかもしれません)
この辺は今後のアップデートに期待するか、独自で作ってみてもよいと思います。

94
94
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
94
94