Come rilevare Swipe Gesture in iOS?
-
28-09-2019 - |
Domanda
Nel mio iPhone app, ho bisogno di riconoscere il gesto di scorrimento da parte dell'utente sulla vista.
Voglio che i gesti di scorrimento per essere riconosciuti e svolgono una funzione sul colpo.
Ho bisogno che la visualizzazione dovrebbe orizzontalmente scorrevole e mostra un'altra vista come un utente fa un gesto di scorrimento.
Cosa si deve fare?
Come faccio a riconoscerlo?
Soluzione
Utilizza la UISwipeGestureRecognizer
. Non c'è molto altro da dire, davvero, riconoscitori gesto sono facili. Ci sono WWDC10 video sull'argomento anche. Le sessioni 120 e 121.:)
Altri suggerimenti
se si sa come funziona, ma ancora bisogno di un esempio veloce, eccolo! (Diventerà a portata di mano, almeno per me, quando ho bisogno di copia-incolla esempio, senza cercare ricordarlo)
UISwipeGestureRecognizer *mSwipeUpRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)];
[mSwipeUpRecognizer setDirection:(UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)];
[[self view] addGestureRecognizer:mSwipeUpRecognizer];
e in .h file del componente aggiuntivo:
<UIGestureRecognizerDelegate>
Il seguente link qui sotto reindirizza a un video tutorial che spiega come rilevare colpi su iPhone in Objective-C :
UISwipeGestureRecognizer Tutorial (Rilevazione swipes su iPhone)
Esempio di codice di seguito, per ottenere che nel Swift :
È necessario disporre di uno UISwipeGestureRecognizer
per ogni direzione. E 'un po' strano perché la proprietà UISwipeGestureRecognizer.direction
è una maschera di bit opzioni in stile, ma ogni riconoscitore può gestire una sola direzione. Li tutto possibile inviare lo stesso gestore, se si desidera, e risolvere la cosa lì, o inviarli a diversi gestori. Ecco un'implementazione:
override func viewDidLoad() {
super.viewDidLoad()
var swipeRight = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:")
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.view.addGestureRecognizer(swipeRight)
var swipeDown = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:")
swipeDown.direction = UISwipeGestureRecognizerDirection.Down
self.view.addGestureRecognizer(swipeDown)
}
func respondToSwipeGesture(gesture: UIGestureRecognizer) {
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
switch swipeGesture.direction {
case UISwipeGestureRecognizerDirection.Right:
println("Swiped right")
case UISwipeGestureRecognizerDirection.Down:
println("Swiped down")
default:
break
}
}
}