\
2014年11月17日
Posted by 屋台ブルー at 2014年11月17日00:00 Comment(0)

Swiftで遊ぼう! - 129 - UIDynamicAnimator/collisionインタラクション無し

Swiftで遊ぼう! - 129 - UIDynamicAnimator/collisionインタラクション無しオブジェクトに重力を加え、境界線で止まるとこまで勉強しました。じゃあ次は、2つのオブジェクトの接触に関してみていこう。青い正方形と黄色い長方形の初期値の位置関係をみてみよう。以下のコードで書くと...
import UIKit

class ViewController: UIViewController {

var animator: UIDynamicAnimator!
var gravity: UIGravityBehavior!
var collision: UICollisionBehavior!

override func viewDidLoad() {
super.viewDidLoad()
// これは青い正方形のオブジェクト
let square = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
square.backgroundColor = UIColor.blueColor()
view.addSubview(square)
// そして付け加えられた黄色い長方形のオブジェクト
let barrier = UIView(frame: CGRect(x: 0, y: 300, width: 130, height: 20))
barrier.backgroundColor = UIColor.yellowColor()
view.addSubview(barrier)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}
Swiftで遊ぼう! - 129 - UIDynamicAnimator/collisionインタラクション無し


上のコードは図形を表示させるだけ。位置関係はこんな位置にあるのが、以下のコードを付け加えて重力を加える。
import UIKit

class ViewController: UIViewController {

var animator: UIDynamicAnimator!
var gravity: UIGravityBehavior!
var collision: UICollisionBehavior!

override func viewDidLoad() {
super.viewDidLoad()
let square = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
square.backgroundColor = UIColor.blueColor()
view.addSubview(square)
let barrier = UIView(frame: CGRect(x: 0, y: 300, width: 130, height: 20))
barrier.backgroundColor = UIColor.yellowColor()
view.addSubview(barrier)
// 青い正方形に重力を加える。
animator = UIDynamicAnimator(referenceView: view)
gravity = UIGravityBehavior(items: [square])
animator.addBehavior(gravity)

// 青い正方形にはまだ画面の境界しか理解できていないので黄色い長方形とのインタラクションは無い。
collision = UICollisionBehavior(items: [square])
collision.translatesReferenceBoundsIntoBoundary = true
animator.addBehavior(collision)

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Swiftで遊ぼう! - 129 - UIDynamicAnimator/collisionインタラクション無し


上のように青い正方形にだけ重力がかかっても黄色い長方形との相互作用はないので、青い正方形は黄色い長方形を素通りして下に落ちていく。

今日はここまで。


同じカテゴリー(Swiftで遊ぼう!)の記事画像
Swiftで遊ぼう! - プログラミングまとめ(ときどき更新)
Swiftで遊ぼう! - 番外編 - Xcode6:ショートカットと用語説明
Swiftで遊ぼう! - 209 - ルートビューのコードは続く:CGRect
Swiftで遊ぼう! - 208 - ルートビューのコード
Swiftで遊ぼう! - 207 - ツールバーボタンとビューコントローラーを繋ぐ
Swiftで遊ぼう! - 206 - ビューコントローラーにビューコントローラーを載せる
同じカテゴリー(Swiftで遊ぼう!)の記事
 Swiftで遊ぼう! - プログラミングまとめ(ときどき更新) (2021-01-31 00:00)
 Swiftで遊ぼう! - 番外編 - Xcode6:ショートカットと用語説明 (2015-04-05 00:00)
 Swiftで遊ぼう! - 209 - ルートビューのコードは続く:CGRect (2015-02-06 00:00)
 Swiftで遊ぼう! - 208 - ルートビューのコード (2015-02-05 00:00)
 Swiftで遊ぼう! - 207 - ツールバーボタンとビューコントローラーを繋ぐ (2015-02-04 00:00)
 Swiftで遊ぼう! - 206 - ビューコントローラーにビューコントローラーを載せる (2015-02-03 00:00)

上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
Swiftで遊ぼう! - 129 - UIDynamicAnimator/collisionインタラクション無し
    コメント(0)