Guest User

Untitled

a guest
Jan 19th, 2019
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.51 KB | None | 0 0
  1. //MARK: - PAN GESTURE RECOGNIZER
  2.  
  3. //Permiti a movimentação do textField superior por gesto.
  4. @IBAction func didPanTfTop(_ sender: UIPanGestureRecognizer) {
  5.  
  6. let translation = sender.translation(in: self.view)
  7.  
  8. if sender.state == .began {
  9. print("Gesture began")
  10. textFieldOriginalCenter = tfTop.center
  11. } else if sender.state == .changed {
  12. print("Gesture is changed")
  13. tfTop.center = CGPoint(x: textFieldOriginalCenter.x + translation.x, y: textFieldOriginalCenter.y + translation.y)
  14. } else if sender.state == .ended {
  15. print("Gesture ended")
  16.  
  17. }
  18. }
  19.  
  20. //Permiti a movimentação do textField inferior por gesto.
  21. @IBAction func didPanTfBottom(_ sender: UIPanGestureRecognizer) {
  22.  
  23. let translation = sender.translation(in: self.view)
  24.  
  25. if sender.state == .began {
  26. print("Gesture began")
  27. textFieldOriginalCenter = tfBottom.center
  28. } else if sender.state == .changed {
  29. print("Gesture is changed")
  30. tfBottom.center = CGPoint(x: textFieldOriginalCenter.x + translation.x, y: textFieldOriginalCenter.y + translation.y)
  31. } else if sender.state == .ended {
  32. print("Gesture ended")
  33.  
  34. }
  35. }
  36.  
  37. //Aciona uma activeView para compartilhar o Meme
  38. @IBAction func share(_ sender: UIBarButtonItem) {
  39. Feedback.share.hapticFeedback()
  40. let memeImage = generateMemedImage()
  41. let activityView = UIActivityViewController(activityItems: [memeImage], applicationActivities: nil)
  42. activityView.completionWithItemsHandler = { (activityType: UIActivity.ActivityType?, completed: Bool, returnedItems: [Any]?, error: Error?) -> Void in
  43.  
  44. if completed {
  45. self.save()
  46. print("Image has saved")
  47. }
  48. }
  49. present(activityView, animated: true, completion: nil)
  50. }
  51.  
  52. //TOP TextField Constraints outlets
  53. @IBOutlet weak var topUpConstraint: NSLayoutConstraint!
  54. @IBOutlet weak var topRightConstraint: NSLayoutConstraint!
  55. @IBOutlet weak var topLeftConstraint: NSLayoutConstraint!
  56.  
  57. //BOTTOM TextField Constraints outlets
  58. @IBOutlet weak var bottomDownConstraint: NSLayoutConstraint!
  59. @IBOutlet weak var bottomRightConstraint: NSLayoutConstraint!
  60. @IBOutlet weak var bottomLeftConstraint: NSLayoutConstraint!
  61.  
  62. //Solução simplificada, mas um pouco frágil, que permiti a movimentação do textField superior por gesto.
  63.  
  64. @IBAction func didPanTfTop(_ gesture: UIPanGestureRecognizer) {
  65. switch gesture.state {
  66. case .began:
  67. originalTransform = gesture.view!.transform
  68. case .changed, .ended:
  69. let translation = gesture.translation(in: gesture.view)
  70. gesture.view?.transform = originalTransform.translatedBy(x: translation.x, y: translation.y)
  71. default:
  72. break
  73. }
  74. }
  75.  
  76. //Solução mais robusta e segura que permiti a movimentação do textField inferior por gesto.
  77. @IBAction func didPanTfBottom(_ gesture: UIPanGestureRecognizer) {
  78. switch gesture.state {
  79. case .began:
  80. originalBottomDownConstant = bottomDownConstraint.constant
  81. originalBottomRightConstant = bottomRightConstraint.constant
  82. originalBottomLeftConstant = bottomLeftConstraint.constant
  83. case .changed, .ended:
  84. let translation = gesture.translation(in: gesture.view)
  85. bottomDownConstraint.constant = originalBottomDownConstant + translation.y
  86. bottomRightConstraint.constant = originalBottomRightConstant + translation.x
  87. bottomLeftConstraint.constant = originalBottomLeftConstant + translation.x
  88. default:
  89. break
  90. }
  91. }
Add Comment
Please, Sign In to add comment