martes, 2 de mayo de 2017

Shake Gesture en Xcode 8 con Switf3.0




Elegimos single view Application para este proyecto


Agregamos una imagen y cubrimos toda la pantalla con ella




Seleccionamos la siguiente opción


Agregamos 3 imágenes diferentes a nuestra biblioteca para poderlas llamar posteriormente, las llamamos 1.jpg, 2.jpg y 3.jpg para esta prueba


Lo que el presente ejemplo hará es que cuando se agite el celular cambie de imágenes, una por cada sacudida, en el simulador lo encontraremos en >hardaware >shake gesture

El código utilizado es el siguiente


import UIKit


class ViewController: UIViewController {

    @IBOutlet var imageView: UIImageView!
    
    let images = ["1", "2", "3"]
    var currentImage = 0
    
    override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?)
    {
        if event?.subtype == UIEventSubtype.motionShake
        {
            print ("SHAKE")
            imageView.image = UIImage(named: images[currentImage] + ".jpg")
            
            if(currentImage == images.count-1)
            {
                currentImage = 0
            }
            else
            {
                currentImage += 1
            }
        }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}


Se declaran las imagenes como 1,2y 3, luego se les adiciona el .jpg, declaramos una variable que se llame currentImagen con valor inicial de 0, se define una función motionEnded, el cual detecta el fin de un movimiento.

if event?.subtype == UIEventSubtype.motionShake



Dice que si existe un evento de movimiento que sea shake entonces se imprime por consola la palabra SHAKE y en la vista del usuario se visualiza una imagen.

Después se escriben 2 sentencias, si el numero de la imagen es menor que cero se establece la variable de nuevo en 0, si no a la variable currentImage se le suma 1.

Lo que hará es que cada vez que el celular tenga un movimiento o sea agitado, la imagen cambiará.


COMO CAMBIAR EN EL EMULADOR?

En la pestaña >hardware elegimos >shake gesture y la imagen debe empezar a cambiar por cada vez que presionemos esta opción. 


Tambien, por cada vez que lo presionemos, en la consola aparece la palabra SHAKE








0 comentarios:

Publicar un comentario