Gemäß dem Apfeldokument. Apple UIPanGestureRecognizer Der Unterschied zwischen einer Pfanne und einem Wisch wie folgt : -
UIPanGestureRecognizer ist eine konkrete Unterklasse von UIGestureRecognizer , die nach Schwenkgesten (Ziehen) sucht. Der Benutzer muss einen oder mehrere Finger auf eine Ansicht drücken, während er sie schwenkt. Clients, die die Aktionsmethode für diesen Gestenerkenner implementieren, können ihn nach der aktuellen Übersetzung und Geschwindigkeit der Geste fragen.
Eine Schwenkgeste ist kontinuierlich. Es beginnt ( begann ), wenn sich die minimal zulässige Anzahl von Fingern ( MinimumNumberOfTouches ) genug bewegt hat, um als Pfanne betrachtet zu werden. Es ändert sich, wenn sich ein Finger bewegt, während mindestens die Mindestanzahl von Fingern gedrückt wird. Es endet ( endet ), wenn alle Finger angehoben werden.
Clients dieser Klasse können in ihren Aktionsmethoden das UIPanGestureRecognizer-Objekt nach der aktuellen Übersetzung der Geste ( Übersetzung (in :) ) und der Geschwindigkeit der Übersetzung ( Geschwindigkeit (in :) ) abfragen . Sie können die Ansicht angeben, deren Koordinatensystem für die Translations- und Geschwindigkeitswerte verwendet werden soll. Clients können die Übersetzung auch auf einen gewünschten Wert zurücksetzen.
Swift 3 UIPanGestureRecognizer-Demo Beispiel: - Ressourcenverknüpfung
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
}
}
}
Gemäß dem Apfeldokument. Apple UITapGestureRecognizer
UITapGestureRecognizer ist eine konkrete Unterklasse von UIGestureRecognizer , die nach einzelnen oder mehreren Abgriffen sucht. Damit die Geste erkannt wird, muss die angegebene Anzahl von Fingern mehrmals auf die Ansicht tippen.
Obwohl Taps diskrete Gesten sind, sind sie für jeden Zustand des Gestenerkenners diskret. Somit wird die zugehörige Aktionsnachricht gesendet, wenn die Geste beginnt, und wird für jeden Zwischenzustand bis (und einschließlich) dem Endzustand der Geste gesendet. Code, der Tap-Gesten verarbeitet, sollte daher den Status der Geste testen.
Swift 3 UITapGestureRecognizer Demo Beispiel Resource 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")
}
Beispielbild für Recognizer