ios swift uigesturerecognizer ios8

ios - Swift UIGestureRecogniser seguir el dedo



uigesturerecognizer ios8 (2)

Estás buscando el UIPanGestureRecognizer . Encontrarás la documentación de Apple here .

Aquí hay un controlador de muestra que moverá una vista con el dedo. En Interface Builder , agregue un UIPanGestureRecognizer a una vista que desee poder arrastrar. Establecer el delegado a su ViewController . Establecer la acción a esta acción:

Swift 2.X:

@IBAction func handlePan(gestureRecognizer: UIPanGestureRecognizer) { if gestureRecognizer.state == .Began || gestureRecognizer.state == .Changed { let translation = gestureRecognizer.translationInView(self.view) // note: ''view'' is optional and need to be unwrapped gestureRecognizer.view!.center = CGPointMake(gestureRecognizer.view!.center.x + translation.x, gestureRecognizer.view!.center.y + translation.y) gestureRecognizer.setTranslation(CGPointMake(0,0), inView: self.view) } }

Swift 3:

@IBAction func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) { if gestureRecognizer.state == .began || gestureRecognizer.state == .changed { let translation = gestureRecognizer.translation(in: self.view) // note: ''view'' is optional and need to be unwrapped gestureRecognizer.view!.center = CGPoint(x: gestureRecognizer.view!.center.x + translation.x, y: gestureRecognizer.view!.center.y + translation.y) gestureRecognizer.setTranslation(CGPoint.zero, in: self.view) } }

Por supuesto, puede agregar el UIPanGestureRecognizer programáticamente:

En viewDidLoad para su ViewController , cree el reconocedor y agréguelo a la vista que desea poder arrastrar:

let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan)) self.someDraggableView.addGestureRecognizer(gestureRecognizer)

Estoy haciendo una aplicación iOS8 usando Swift. Me gustaría que el usuario pueda usar gestos para revelar ciertas partes de la interfaz. Así, por ejemplo, el usuario desliza su dedo hacia arriba y la vista que desliza hacia arriba se mueve fuera del camino, siguiendo su dedo para revelar otra vista debajo.

Lo que me gustaría es un gesto para dar un resultado similar al cuadro de notificación que puede bajar desde la parte superior de la pantalla. He estado mirando la documentación y parece que no puedo encontrar un gesto adecuado.

Vi uno llamado UISwipeGestureRecogniser, pero el único problema es que no sigue su dedo, simplemente ejecuta una función cuando deslizo el dedo hacia arriba / abajo.

Aquí está la página de documentación: https://developer.apple.com/documentation/uikit/uigesturerecognizer


No estás realmente después de reconocer un gesto tanto como rastrear el movimiento del dedo.

Intente configurar el controlador de vista para tener una llamada en un touch down en la vista y comenzar a rastrear los movimientos de los dedos hasta que haya un retoque.