Conforme o documento da apple. Apple UIPanGestureRecognizer A diferença entre uma panela e um furto como abaixo: -
UIPanGestureRecognizer é uma subclasse concreta de UIGestureRecognizer que procura gestos de pan (arrastar). O usuário deve estar pressionando um ou mais dedos em uma vista enquanto o desloca. Os clientes que implementam o método de ação para esse reconhecedor de gestos podem solicitar a tradução e a velocidade atuais do gesto.
Um gesto de panorâmica é contínuo. Começa ( começa ) quando o número mínimo de dedos permitido ( minimumNumberOfTouches ) se moveu o suficiente para ser considerado um pan. Ele muda (muda) quando um dedo se move enquanto pelo menos o número mínimo de dedos é pressionado. Termina ( termina ) quando todos os dedos são levantados.
Os clientes dessa classe podem, em seus métodos de ação, consultar o objeto UIPanGestureRecognizer para a tradução atual do gesto ( tradução (em :) ) e a velocidade da tradução ( velocidade (em :) ). Eles podem especificar a vista cujo sistema de coordenadas deve ser usado para os valores de translação e velocidade. Os clientes também podem redefinir a tradução para o valor desejado.
Exemplo de demonstração do Swift 3 UIPanGestureRecognizer: - Link de recurso
import UIKit
class ViewController: UIViewController {
// this records our circle's center for use as an offset while dragging
var circleCenter: CGPoint!
override func viewDidLoad() {
super.viewDidLoad()
// Add a draggable view
let circle = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 100.0, height: 100.0))
circle.center = self.view.center
circle.layer.cornerRadius = 50.0
circle.backgroundColor = UIColor.green()
// add pan gesture recognizer to
circle.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.dragCircle)))
self.view.addSubview(circle)
}
func dragCircle(gesture: UIPanGestureRecognizer) {
let target = gesture.view!
switch gesture.state {
case .began, .ended:
circleCenter = target.center
case .changed:
let translation = gesture.translation(in: self.view)
target.center = CGPoint(x: circleCenter!.x + translation.x, y: circleCenter!.y + translation.y)
default: break
}
}
}
Conforme o documento da apple. Apple UITapGestureRecognizer
UITapGestureRecognizer é uma subclasse concreta de UIGestureRecognizer que procura por toques únicos ou múltiplos. Para que o gesto seja reconhecido, o número especificado de dedos deve tocar na visualização um número especificado de vezes.
Embora os toques sejam gestos discretos, eles são discretos para cada estado do reconhecedor de gestos; assim, a mensagem de ação associada é enviada quando o gesto começa e é enviada para cada estado intermediário até (e inclusive) o estado final do gesto. O código que lida com gestos de toque deve, portanto, testar o estado do gesto.
Exemplo de demonstração do Swift 3 UITapGestureRecognizer Link do recurso
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self, action: #selector(doubleTapped))
tap.numberOfTapsRequired = 2
view.addGestureRecognizer(tap)
}
func doubleTapped() {
// do something cool here
print("Test TapGesture")
}
Imagem de exemplo para o reconhecedor