Según el documento de apple.Apple UIPanGestureRecognizer La diferencia entre una sartén y un golpe de la siguiente manera: -
UIPanGestureRecognizer es una subclase concreta de UIGestureRecognizer que busca paneo (arrastrando) gestos. El usuario debe presionar uno o más dedos en una vista mientras lo desplaza. Los clientes que implementan el método de acción para este reconocedor de gestos pueden solicitar la traducción actual y la velocidad del gesto.
Un gesto de panorámica es continuo. Comienza (comenzó) cuando el número mínimo de dedos permitido (minimumNumberOfTouches) se ha movido lo suficiente como para considerarse una panorámica. Cambia (cambia) cuando un dedo se mueve mientras se presiona al menos la cantidad mínima de dedos. Termina (finalizó) cuando se levantan todos los dedos.
Los clientes de esta clase pueden, en sus métodos de acción, consultar el objeto UIPanGestureRecognizer para la traducción actual del gesto (traducción (en :)) y la velocidad de la traducción (velocidad (en :)) . Pueden especificar la vista cuyo sistema de coordenadas se debe usar para los valores de velocidad y de traducción. Los clientes también pueden restablecer la traducción a un valor deseado.
Swift 3 UIPanGestureRecognizer DEMO Ejemplo: -Resource Link
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
}
}
}
Según el documento de manzana. Apple UITapGestureRecognizer
UITapGestureRecognizer es una subclase concreta de UIGestureRecognizer que busca grifos simples o múltiples. Para que se reconozca el gesto, el número especificado de dedos debe tocar la vista un número específico de veces.
Aunque los toques son gestos discretos, son discretos para cada estado del reconocedor de gestos; por lo tanto, el mensaje de acción asociado se envía cuando el gesto comienza y se envía para cada estado intermedio hasta (e incluyendo) el estado final del gesto. El código que maneja los gestos de toque debería, por lo tanto, probar el estado del gesto.
Swift 3 UITapGestureRecognizer Demostración EjemploResource Link
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")
}
Imagen de ejemplo para el reconocedor de
@rickster, corrígeme si me equivoco, pero golpe utiliza cuatro direcciones, arriba, abajo, izquierda, derecha y pan puede ser cualquier dirección. Correcto –