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?

È stato utile?

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
        }
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top