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