当前位置: > > > Swift - 使用UI Dynamics给UIKit组件添加重力和碰撞行为

Swift - 使用UI Dynamics给UIKit组件添加重力和碰撞行为

UI Dynamics是UIKit的一个新组成部分,它向iOS中的视图提供了与物理学有关的功能和动画。可以让你向视图中引入力和物理属性,可以让你的视图弹跳,舞动,受重力影响等等。

下面通过样例,演示使用UIGravityBehavior和UICollisionBehavior给UIImageView添加重力和碰撞行为。

效果图如下:(苹果自上而下做自由落体,当掉到底部的时候还有碰撞效果。) 

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()
    }
}
评论0