swift 快速奔跑的兔几 本节的内容是:重力和snap效果

前端之家收集整理的这篇文章主要介绍了swift 快速奔跑的兔几 本节的内容是:重力和snap效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本例的运行结果是一个图片可以自由落下,点击鼠标第一次,图片粘附到鼠标点击的位置,点击鼠标第二次,图片自由落下,重复该过程。

需要注意的是,gravity和snap会又些冲突,所以需要以下这一行代码

  1. dynamicAnimator.removeAllBehaviors()
  1. import UIKit
  2.  
  3. class ViewController: UIViewController {
  4.  
  5. @IBAction func tapped(sender: AnyObject) {
  6. let tap = sender as! UITapGestureRecognizer
  7. if tap.state == UIGestureRecognizerState.Ended{
  8. let point = tap.locationInView(tap.view)
  9. //print(point)
  10. self.snap = UISnapBehavior(item: self.dynamicImageView,snapToPoint: point)
  11. if (snap != nil){
  12. dynamicAnimator.removeAllBehaviors()
  13. dynamicAnimator.addBehavior(self.snap!)
  14. if fall==0{
  15. fall=1
  16. }else{
  17. addBehaviorSelf()
  18. fall=0
  19. }
  20. }
  21. }
  22. }
  23. @IBOutlet weak var dynamicImageView: UIImageView!
  24. var fall = 0
  25. var dynamicAnimator = UIDynamicAnimator()
  26. var snap: UISnapBehavior?
  27. override func viewDidLoad() {
  28. super.viewDidLoad()
  29. let img1 = UIImage(named:"littleYellowMan.jpg")
  30. dynamicImageView.image = img1
  31. dynamicAnimator = UIDynamicAnimator(referenceView: self.view)
  32. addBehaviorSelf()
  33. }
  34.  
  35. func addBehaviorSelf(){
  36. dynamicAnimator.removeAllBehaviors()
  37. let gravityBehavior = UIGravityBehavior(items: [self.dynamicImageView])
  38. dynamicAnimator.addBehavior(gravityBehavior)
  39. let collisionBehavior = UICollisionBehavior(items: [self.dynamicImageView])
  40. collisionBehavior.translatesReferenceBoundsIntoBoundary = true
  41. dynamicAnimator.addBehavior(collisionBehavior)
  42. }
  43. }

猜你在找的Swift相关文章