7新機能!物理学的な難しい知識無しにアニメーションを実装できるようになった!では自由落下運動と地面でバウンドするアニメーションのサンプルを書きました。今回はUIGravityBehaviorの使い方や、UIDynamicAnimatorについてもう少し詳しく書きたいと思います。前回のおさらいまず、前回の記事のソースコードを見てみましょう。UIDynamicAnimatorの仲間たち1。UIDynamicAnimatorの仲間たち2。addBehavior:collisionBehavior];}@endUIDynamicAnimatorUIDynamicAnimatorは今回の主役とも言える、アニメーションを管理するクラスです。*)viewメソッドで生成します。サンプルでは21行目にあります。このメソッドの引数に指定するビューはアニメーションを行うための土台です。座標の計算などはこのビューを中を基準に行われます。*)behaviorメソッドを使用します(サンプルの31、32行目)。(void)removeAllBehaviorsを使用します。UIDynamicAnimatorDelegateプロトコルUIDynamicAnimatorではデリゲートも用意されています。試しに以下のようにViewController.mを修正してみましょう。UIDynamicAnimatorの仲間たち1。UIDynamicAnimatorの仲間たち2。__func__);}@end実行すると、以下のようにアニメーション開始時とアニメーション終了時にログが出力されるはずです。UIDynamicAnimatorが解放されないように気をつけよう!サンプルの5行目でもあるように、このサンプルではUIDynamicAnimatorインスタンスをプロパティとして宣言し、保持しています。しないとアニメーションが実行されないので注意してください。initWithReferenceView:self.view];UIGravityBehaviorUIGravityBehaviorは文字通り重力に従ったアニメーションを行うためのクラスです。UIGravityBehaviorだけを使用した例を見てみましょう。ViewController.mを以下のように変更してみましょう。UIDynamicAnimatorの仲間たち1。addBehavior:gravityBeahvior];}@end実行すると、赤い四角形のビューが上から落ちてきてそのまま画面の外にいなくなってしまいましたね。このように落下運動はUIGravityBehaviorが実現していたというわけです。*)itemsを見て分かるように、アニメーションさせるビューは複数指定することができます。試しにViewController.mを以下のように変更してみましょう。UIDynamicAnimatorの仲間たち1。addBehavior:gravityBeahvior];}@end実行すると、赤と青のビューが同じように落下するはずです。gravityDirectionUIGravityBehaviorにはgravityDirectionプロパティがあります。このプロパティを設定することによって重力がかかる方向(重力のベクトル)を変更することができます。値はCGVectorで指定します。7より新しく追加になったやつで、二次元ベクトルを表す構造体だそうです。1.0)次回、UICollisionBehaviorについて詳しく!このようにとても簡単に重力運動のアニメーションが実装できました。このままだと赤い四角形のビューが画面の外にいったままいなくなってしまいますね。地面(=画面の境界)にきたらバウンドさせるにはどうしたら良いでしょうか?そう!UICollisionBehaviorの登場です。926,181まだプロフィールが設定されていません。〜ログ収集、監視、分析を触って体感しよう!〜」を開催しますお申し込み受付は終了しました。ありがとうございました。今後セミナーのお知らせを受け取りたい方は、こちらからご登録をお願いします。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。