2010-11-25 19 views
35

En mi aplicación de iPhone, necesito reconocer el gesto de deslizamiento realizado por el usuario en la vista.¿Cómo se detecta el gesto de deslizar en el iPhone SDK?

Quiero que los gestos de deslizamiento sean reconocidos y realice una función al deslizar.

Necesito que la vista se deslice horizontalmente y muestre otra vista a medida que el usuario hace un gesto de deslizar.

¿Qué hay que hacer?

¿Cómo lo reconozco?

Cualquier instrucción o tutorial será realmente apreciado.

Respuesta

41

Utilice UISwipeGestureRecognizer. No hay mucho más que decir realmente, los reconocedores de gestos son fáciles. Hay WWDC10 videos sobre el tema, incluso. Sesiones 120 y 121. :)

+1

gracias por su contribución. ¿Puedes darme alguna demostración o tutorial para esto? Soy un novato Gracias –

+10

puedo, pero prefiero que veas los videos WWDC10, las dos sesiones que describí. Le enseñarán todo lo que necesita saber sobre los reconocedores de gestos en 2 horas. Mucho más eficiente de lo que podría hacer aquí. Actualicé mi respuesta para proporcionar un enlace a los videos. – jer

+1

¡Muchas gracias! :) –

45

si usted sabe cómo funciona, pero todavía necesita un ejemplo rápido, aquí está! (Que se convertirá en la mano, al menos para mí, cuando voy a necesitar ejemplo, copiar y pegar, sin tratar de recordarlo)

UISwipeGestureRecognizer *mSwipeUpRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)]; 

[mSwipeUpRecognizer setDirection:(UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)]; 

[[self view] addGestureRecognizer:mSwipeUpRecognizer]; 

y en el archivo .h complemento:

<UIGestureRecognizerDelegate> 
+11

+1 para el ejemplo de código –

+0

gracias. ... Excelente trabajo;) – Abdu

+0

[release mSwipeUpRecognizer]; no es necesario desde la publicación del ARC, debe editar su respuesta. Independientemente de +1 por tu respuesta. –

-1

En el siguiente enlace a continuación vuelve a dirigir que a un video tutorial que explica cómo detectar golpes en el iPhone en Objective-C :

UISwipeGestureRecognizer Tutorial (Detecting swipes on the iPhone)

Ejemplo de código a continuación, para lograrlo en Swift:

Necesita tener un UISwipeGestureRecognizer para cada dirección. Es un poco raro porque la propiedad UISwipeGestureRecognizer.direction es una máscara de bits de estilo de opciones, pero cada reconocedor solo puede manejar una dirección. Puede enviarlos todos al mismo controlador si lo desea, y ordenarlos allí, o enviarlos a diferentes controladores. Aquí hay una implementación:

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 
     } 
    } 
} 
+0

¿Por qué bajar la votación cuando funciona perfectamente y podría ayudar a personas de todo el mundo? –

Cuestiones relacionadas