iOS : Ejercicio 4 Cambio de imagen ImageView click button

Blog >Lista ejercicios >  Ejercicio 4



Hola developers, continuamos el tutorial de ejercicios básicos con este nuevo post:



Ejercicio 4: Cambio y gestion de ImageView además de varias propiedades de objetos.

Comenzamos el ejercicio creando un proyecto de la forma habitual :create new proyect - view single apliccation.
Después haciendo click en Main_iPhone.storyboard, configuramos la vista introduciendo desde el panel de los objetos un ImageView y 3 botones, de tal manera que quede así :




A continuación vamos a ver como insertar en nuestro proyecto imágenes para poder utilizarlas como recursos, aquí tengo estas 2 imágenes con las que vamos a trabajar :




Ahora arrastramos desde el escritorio las imágenes a la carpeta Images.xcassets, y despues en Main_iPhone.storyboard seleccionando la propiedad del ImageView que se llama image y seleccionando la primera, quedando así



Este es el momento de hacer las conexiones, sino has visto los ejercicios anteriores es posible que no sepas hacerlas, así que abajo del post, con hacer click en el ejercicio anterior, podrás ver como se hacen. Ahora vamos al código, en el ViewControler.h declaramos las variables que debemos usar, tenemos 3 botones, osea 3 acciones y un ImageView.

#import 

@interface ViewController : UIViewController{
 //REFERENCIA A IMAGEN
    IBOutlet UIImageView *imagen;
}

//ACCIONES A BOTONES
//BOTON1
-(IBAction)imagenuno;
//BOTON2
-(IBAction)imagendos;
//BOTON "CAMBIAR IMAGEN"
-(IBAction)cambiarimagen;

@end


Bien para cualquier programador que haya programado algo, dirá que con una variable de clase, va cambiando segun se pulse en los dos botones, despues en el tercero se hace la condición y listo, como por ejemplo así


#import "ViewController.h"

@interface ViewController ()

@end

NSInteger variable=0;
@implementation ViewController

-(IBAction) imagenuno{
    imagen.image= [UIImage imageNamed:@"logoSoloRuedas.png"];
 variable=0;
}

-(IBAction) imagendos{
    imagen.image=[UIImage imageNamed:@"images.png"];
 variable=1;
}

-(IBAction) cambiarimagen{
    //ACCION PRESIONAR BOTON CAMBIAR IMAGEN
 //SI LA IMAGEN ES LA 1, CABIAR A LA SEGUNDA
    if(variable==0){
   imagen.image=[UIImage imageNamed:@"logoSoloRuedas.png"];
 //SINO, CAMBIAR POR LA SEGUNDA
    }else{
         imagen.image=[UIImage imageNamed:@"images.png"];
    }
}


Pues bien, así NO FUNCIONA, esto tiene que ver con que Objetive-C NO ADMITE VARIABLES DE CLASE.


Por lo tanto tendremos que hacerlo de cualquier otro modo, por ejemplo : 

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

-(IBAction) imagenuno{
    imagen.image= [UIImage imageNamed:@"logoSoloRuedas.png"];
}
-(IBAction) imagendos{
    imagen.image=[UIImage imageNamed:@"images.png"];
}
-(IBAction) cambiarimagen{
    //ACCION PRESIONAR BOTON CAMBIAR IMAGEN
 //SI LA IMAGEN ES LA 1, CABIAR A LA SEGUNDA
    if(imagen.image==[UIImage imageNamed:@"logoSoloRuedas.png"]){
        imagen.image=[UIImage imageNamed:@"images.png"];
 //SINO, CAMBIAR POR LA SEGUNDA
    }else{
        imagen.image=[UIImage imageNamed:@"logoSoloRuedas.png"];
    }
}
Y bien, aquí está el resultado :





Podeis descargar el código fuente de thebestandroide con sólo compartir en facebook,twitter,linkedin o suscribirte a nuestro canal RSS más abajo. 



Compartir Compartir Compartir Compartir




Thebestandroide Indice Thebestandroide Ejercicio anterior Thebestandroide Siguiente ejercicio

0 comentarios:

Publicar un comentario