Zgodnie z dokumentem Apple. Apple UIPanGestureRecognizer Różnica między panoramą a machnięciem, jak poniżej: -
UIPanGestureRecognizer to konkretna podklasa UIGestureRecognizer, która szuka gestów przesuwania (przeciągania). Podczas przesuwania widoku użytkownik musi naciskać jeden lub więcej palców. Klienci implementujący metodę akcji dla tego aparatu rozpoznawania gestów mogą poprosić go o bieżące tłumaczenie i szybkość gestu.
Gest przesuwania jest ciągły. Zaczyna się ( rozpoczął ), gdy minimalna liczba palców dozwolone ( minimumNumberOfTouches ) przeniósł się na tyle, aby uznać patelni. Zmienia się (zmienia), gdy palec porusza się, gdy przynajmniej minimalna liczba palców jest wciśnięta. Kończy się ( kończy ), gdy wszystkie palce są uniesione.
Klienci tej klasy mogą, w swoich metodach akcji, wysyłać zapytania do obiektu UIPanGestureRecognizer o bieżące tłumaczenie gestu ( translacja (w :) ) i prędkość tłumaczenia ( prędkość (w :) ). Mogą określić widok, którego układ współrzędnych powinien być użyty dla wartości przesunięcia i prędkości. Klienci mogą również zresetować tłumaczenie do żądanej wartości.
Przykład demo Swift 3 UIPanGestureRecognizer: - Link do zasobów
import UIKit
class ViewController: UIViewController {
var circleCenter: CGPoint!
override func viewDidLoad() {
super.viewDidLoad()
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()
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
}
}
}
Zgodnie z dokumentem Apple. Apple UITapGestureRecognizer
UITapGestureRecognizer to konkretna podklasa UIGestureRecognizer, która wyszukuje pojedyncze lub wielokrotne dotknięcia . Aby gest został rozpoznany, określona liczba palców musi stuknąć widok określoną liczbę razy.
Chociaż stuknięcia są gestami dyskretnymi, są one odrębne dla każdego stanu aparatu rozpoznawania gestów; w ten sposób skojarzony komunikat akcji jest wysyłany, gdy gest się zaczyna i jest wysyłany dla każdego stanu pośredniego aż do (włącznie) stanu końcowego gestu. Kod, który obsługuje gesty stuknięcia, powinien zatem sprawdzać stan gestu.
Swift 3 UITapGestureRecognizer Przykładowy link do zasobu
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self, action: #selector(doubleTapped))
tap.numberOfTapsRequired = 2
view.addGestureRecognizer(tap)
}
func doubleTapped() {
print("Test TapGesture")
}
Przykładowy obraz dla narzędzia do rozpoznawania