ブロックチェーン・AI・システム開発の株式会社INDETAIL

iOSでアニメーションを行う方法”複数”

2014.04.21
なめ橋

こんにちわ。
なめ橋です。

私は漫画が好きなのですが、最近は「all you need is kill」という漫画に嵌っております。
この漫画、今度トムクルーズ主演で映画化することが決まっていて、日本では7月ロードショーだそうです。
時間があったら見に行こうと思います。

複数のアニメーション対応

今回は複数のアニメーションを同時に実行する方法について解説したいと思います。
この場合の”複数”とは、1つのオブジェクトに対して”複数”のアニメーションを同時に実行するという意味です。
今回のキーワードは、

  • CAAnimationGroup

になります。

CAAnimationGroupについて

content2
CAAnimationGroupは文字通り、アニメーションをグループ化するクラスです。
CABasicAnimation等のCore Animationを使ったアニメーションオブジェクトを格納し1つのアニメーションとして扱うことが可能となります。

使い方は非常に簡単で、作成したアニメーションオブジェクトを、CAAnimationGroupのanimationsプロパティにNSArrayの形式で格納するだけとなります。
また、CAAnimationクラスを親クラスとしているため、timingFunctionやdurationといったアニメーションにかける時間や効果なども設定可能です。
ただし、プロパティの値をアニメーションオブジェクトとCAAnimationGroupで異なる値を指定した場合はCAAnimationGroupで設定した値が優先されます。
まずは、アニメーションオブジェクトを複数作成してみます。

ここまでは、前回までの記事で作成した内容です。
これら2つを格納するCAAnimationGroupを作成していきます。

ポイントとなるのはaddAnimation:forkey:メソッドに指定するKeyです。
ここには本来、プロパティの名前をKeyとしますが、今回は複数のアニメーションのため、それぞれのアニメーションオブジェクトに設定したkeyを"-"で区切ったものをKeyとします。
結果として以下のように動作します。

 

 
少し短いですが、今回はこれで以上です。
そろそろアニメーション以外の記事も投稿してみたいので次回からは別の題材にしようかなと考えております。

なめ橋

2013年4月に入社。 最近ようやくiOSの開発に慣れてきた新人のエンジニアです。 髪が長くなるとなめこに似ているといわれます。

「いいね」ボタンを押すと、最新情報をすぐに確認できます。