当前位置: > > > Swift - 使用UI Dynamics给UIKit组件添加移动吸附行为

Swift - 使用UI Dynamics给UIKit组件添加移动吸附行为

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

下面通过样例,演示使用UISnapBehavior给UIImageView添加移动吸附行为。

效果图如下:(点击屏幕,苹果会动态移动到点击的位置,移动时还有倾斜和缓动效果) 

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    
    var dynamicAnimator = UIDynamicAnimator()
    var snap:UISnapBehavior?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        dynamicAnimator = UIDynamicAnimator(referenceView: self.view)
    }
    
    @IBAction func tapped(sender:AnyObject){
        //获取点击位置
        let tap = sender as! UITapGestureRecognizer
        let point = tap.locationInView(self.view)
        
        //删除之前的吸附,添加一个新的
        if self.snap != nil {
            self.dynamicAnimator.removeBehavior(self.snap!)
        }
        self.snap = UISnapBehavior(item: self.imageView, snapToPoint: point)
        self.dynamicAnimator.addBehavior(self.snap!)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
评论0