Según el documento de Apple. Apple UIPanGestureRecognizer La diferencia entre una sartén y un deslizamiento de la siguiente manera: -
UIPanGestureRecognizer es una subclase concreta de UIGestureRecognizer que busca gestos de desplazamiento (arrastre). El usuario debe presionar uno o más dedos en una vista mientras la desplaza. Los clientes que implementan el método de acción para este reconocedor de gestos pueden solicitarle la traducción actual y la velocidad del gesto.
Un gesto panorámico es continuo. Comienza ( comenzó ) cuando el número mínimo de dedos permitidos ( mínimoNúmero de Toques ) se ha movido lo suficiente como para ser considerado una panorámica. Cambia (cambia) cuando un dedo se mueve mientras al menos se presiona el número mínimo de dedos. Termina ( finaliza ) 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 debe usarse para los valores de traducción y velocidad. Los clientes también pueden restablecer la traducción al valor deseado.
Ejemplo de demostración de Swift 3 UIPanGestureRecognizer: - Enlace de recursos
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 Apple. 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 grifos son gestos discretos, son discretos para cada estado del reconocedor de gestos; así, el mensaje de acción asociado se envía cuando comienza el gesto y se envía para cada estado intermedio hasta (e incluyendo) el estado final del gesto. Por lo tanto, el código que maneja los gestos táctiles debe probar el estado del gesto.
Enlace de recursos de ejemplo de demostración Swap 3 UITapGestureRecognizer
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 Recognizer