[iOS7]UIDynamicsで物理シミュレーション

iOS開発で物理シミュレーションといえば、Box2Dなどがありますね。

iOS7からはUIDynamicsを使うことで簡単に物理シミュレーションが可能になりましたのでやってみました。

まずはヘッダから書いていきます。

ViewController.h

ここでのUIDynamicAnimatorが物理シミュレーションの空間を管理するクラスとなります。

UIGravityBehaviorとUICollisionBehaviorはビヘイビアと言って、Animatorに効果を追加していく事になります。

名前の通り、今回は重力と衝突判定を追加しています。

ViewController.m

viewDidLoad内でまずは、アニメータの初期化しています。

その後に、各ビヘイビアを初期化、プロパティを設定します。設定した後はアニメータにビヘイビア追加します。

これで、アニメータを使う準備はできています。

 

最後に、UIImageViewを追加してビューに追加してから各ビヘイビアにも追加すると動きます。

今回の例では、重力にそって落下して地面でバウンドする例です。

(gravity.magnitudeで重力の強さを設定しているのでゆっくりと落ちていきます。)

 

ビヘイビアは他にもあります。最後にそれぞれ簡単に説明しておきます。

  • UIAttachmentBehavior
  • UICollisionBehavior
  • UIDynamicItemBehavior
  • UIGravityBehavior
  • UIPushBehavior
  • UISnapBehavior

UIAttachmentBehavior

2つのアイテムを一点でつなぐことが出来るビヘイビア

UICollisionBehavior

衝突判定を追加するビヘイビア

UIDynamicItemBehavior

物体の特性を変更するビヘイビア(質量、弾性、摩擦など)

UIGravityBehavior

重力を追加するビヘイビア

UIPushBehavior

力を加える事が出来るビヘイビア

UISnapBehavior

吸い付くような動きをするビヘイビア

 

参考

魅せるUIの作り方 | iOS 7エンジニア勉強会

UIKit Dynamicsを試してみた – Clouder::Blogger

[iOS 7] [UI Dynamics] 新しく追加されたUIDynamics | Developers.IO

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">