Come da documento Apple. Apple UIPanGestureRecognizer La differenza tra una panoramica e uno scorrimento come di seguito: -
UIPanGestureRecognizer è una sottoclasse concreta di UIGestureRecognizer che cerca gesti di panning (trascinamento). L'utente deve premere una o più dita su una vista mentre la sposta. I clienti che implementano il metodo di azione per questo riconoscitore di gesti possono chiedere la traduzione e la velocità correnti del gesto.
Un gesto di panning è continuo. Inizia ( iniziata ) quando il numero minimo di dita consentito ( minimumNumberOfTouches ) si è spostato abbastanza da essere considerato una panoramica. Cambia (cambia) quando un dito si muove mentre almeno il numero minimo di dita viene premuto. Termina ( terminato ) quando tutte le dita vengono sollevate.
I clienti di questa classe possono, nei loro metodi di azione, interrogare l'oggetto UIPanGestureRecognizer per la traduzione corrente del gesto ( traduzione (in :) ) e la velocità della traduzione ( velocità (in :) ). Possono specificare la vista il cui sistema di coordinate dovrebbe essere usato per i valori di traslazione e velocità. I clienti possono anche ripristinare la traduzione sul valore desiderato.
Swift 3 UIPanGestureRecognizer Demo Esempio: - Collegamento risorse
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
}
}
}
Come da documento Apple. Apple UITapGestureRecognizer
UITapGestureRecognizer è una sottoclasse concreta di UIGestureRecognizer che cerca rubinetti singoli o multipli. Affinché il gesto venga riconosciuto, il numero specificato di dita deve toccare la vista un numero specificato di volte.
Sebbene i tocchi siano gesti discreti, sono discreti per ogni stato del riconoscimento dei gesti; pertanto il messaggio di azione associato viene inviato quando inizia il gesto e viene inviato per ogni stato intermedio fino allo stato finale del gesto (e incluso). Il codice che gestisce i gesti dei tocchi dovrebbe quindi verificare lo stato del gesto.
Swift 3 UITapGestureRecognizer Demo Esempio Link alle risorse
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")
}
Immagine di esempio per il riconoscimento