swift基础之UIAnimation 动画(手势操作)

前端之家收集整理的这篇文章主要介绍了swift基础之UIAnimation 动画(手势操作)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. import UIKit
  2.  
  3. class ViewController: UIViewController {
  4. @IBOutlet weak var penguinView: UIImageView!
  5. var frames: NSArray?
  6. var dieCenter: CGPoint?
  7. override func viewDidLoad() {
  8. super.viewDidLoad()
  9.  
  10. let image1 = UIImage(named:"penguin_walk01")!
  11. let image2 = UIImage(named:"penguin_walk02")!
  12. let image3 = UIImage(named:"penguin_walk03")!
  13. let image4 = UIImage(named:"penguin_walk04")!
  14. let frames: [UIImage] = [image1,image2,image3,image4]
  15. penguinView.animationDuration = 0.15;
  16. penguinView.animationRepeatCount = 2;
  17. penguinView.animationImages = frames;
  18. //walk right
  19. let swipeGestureRight = UISwipeGestureRecognizer(target: self,action: #selector(ViewController.walkRight(_:)))
  20. swipeGestureRight.direction = UISwipeGestureRecognizerDirection.Right
  21. view.addGestureRecognizer(swipeGestureRight)
  22. //walk left
  23. let swipeGestureLeft = UISwipeGestureRecognizer(target: self,action: #selector(ViewController.walkLeft(_:)))
  24. swipeGestureLeft.direction = UISwipeGestureRecognizerDirection.Left
  25. view.addGestureRecognizer(swipeGestureLeft)
  26. //jump
  27. let tap = UITapGestureRecognizer(target: self,action: #selector(ViewController.jump(_:)))
  28. view.addGestureRecognizer(tap)
  29. //longPress
  30. let longPress = UILongPressGestureRecognizer(target: self,action: #selector(ViewController.longPress(_:)))
  31. view.addGestureRecognizer(longPress)
  32. }
  33.  
  34. override func didReceiveMemoryWarning() {
  35. super.didReceiveMemoryWarning()
  36. }
  37.  
  38. func walkLeft(send: UIGestureRecognizer) {
  39. print("walk left");
  40. //CHECK IF OUT OF SCREEN
  41. if (penguinView.center.x < 0.0) {
  42. penguinView.center = CGPointMake(view.frame.size.width,penguinView.center.y);
  43. }
  44. //FLIP AROUND FOR WALKING LEFT
  45. self.penguinView.transform = CGAffineTransformMakeScale(-1.0,1.0);
  46. //START WALK ANIMATION
  47. penguinView.startAnimating()
  48. //MOVE THE IMAGE VIEW TO LEFT
  49. UIView.animateWithDuration(0.6,animations: { () -> Void in
  50. self.penguinView.center = CGPointMake(self.penguinView.center.x - 30,self.penguinView.center.y);
  51. })
  52. }
  53.  
  54. func walkRight(send: UIGestureRecognizer) {
  55. print("walk right");
  56. if (self.penguinView.center.x > self.view.frame.size.width) {
  57. self.penguinView.center = CGPointMake(0,self.penguinView.center.y);
  58. }
  59. self.penguinView.transform = CGAffineTransformIdentity;
  60. penguinView.startAnimating()
  61. UIView.animateWithDuration(0.6,animations: { () -> Void in
  62. self.penguinView.center = CGPointMake(self.penguinView.center.x + 30,self.penguinView.center.y)
  63. })
  64. }
  65.  
  66. func jump(send: UIGestureRecognizer) {
  67. penguinView.startAnimating()
  68. UIView.animateWithDuration(0.25,animations: { () -> Void in
  69. self.penguinView.center = CGPointMake(self.penguinView.center.x,self.penguinView.center.y - 50)
  70. },completion: { (finished: Bool) -> Void in
  71. self.jumpBack()
  72. })
  73. }
  74. func jumpBack() {
  75. UIView.animateWithDuration(0.25,animations: { () -> Void in
  76. self.penguinView.center = CGPointMake(self.penguinView.center.x,self.penguinView.center.y + 50)
  77. })
  78. }
  79.  
  80. func longPress(send: UIGestureRecognizer) {
  81. UIView.animateWithDuration(0.33,animations: { () -> Void in
  82. self.dieCenter = self.penguinView.center
  83. self.penguinView.center = CGPointMake(self.penguinView.center.x,self.view.frame.size.height)
  84. },completion: { (finished: Bool) -> Void in
  85. self.longPressBack()
  86. })
  87. }
  88.  
  89. func longPressBack() {
  90. UIView.animateWithDuration(0.25,animations: { () -> Void in
  91. self.penguinView.center = self.dieCenter!
  92. })
  93. }
  94.  
  95. }


要准备四张图片



运行结果界面

当点击时会跳跃,当向右滑动会向右走,左划想左走

猜你在找的Swift相关文章