UI Dynamics是UIKit的一个新组成部分,它向iOS中的视图提供了与物理学有关的功能和动画。可以让你向视图中引入力和物理属性,可以让你的视图弹跳,舞动,受重力影响等等。
下面通过样例,演示使用UIGravityBehavior和UICollisionBehavior给UIImageView添加重力和碰撞行为。
效果图如下:(苹果自上而下做自由落体,当掉到底部的时候还有碰撞效果。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import UIKit class ViewController : UIViewController { @IBOutlet weak var imageView: UIImageView ! var dynamicAnimator = UIDynamicAnimator () override func viewDidLoad() { super .viewDidLoad() dynamicAnimator = UIDynamicAnimator (referenceView: self .view) //创建并添加重力行为 let gravityBehavior = UIGravityBehavior (items: [ self .imageView]) dynamicAnimator.addBehavior(gravityBehavior) //创建并添加碰撞行为 let collisionBehavior = UICollisionBehavior (items: [ self .imageView]) collisionBehavior.translatesReferenceBoundsIntoBoundary = true dynamicAnimator.addBehavior(collisionBehavior) } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() } } |