2012-08-09 41 views
5

Tengo un UIButton en uno de mis ViewControllers con tres imágenes de estado diferentes (normal, resaltado y seleccionado). Cuando presiono este botón, se resalta y cuando lo suelto, se selecciona. Quiero hacer una animación que cambie la imagen resaltada del botón a la seleccionada en 4 segundos con un fadeIn más o menos.Agregar animación de selección a un UIButton

¿Alguna sugerencia?

Respuesta

2

Tienes que registrar tu propia subclase UIButton y probablemente tendrás que sobrescribir setSelected y setHighlighted con tu código de animación personalizado. La apuesta más segura sería la subclase UIControl directamente y volver a implementar esos selectores para que no tenga ningún legado específico UIButton.

9

Trate UIView transitionWithView estableciendo primero los normales y seleccionados imágenes para UIButton, y luego en el gestor de acción animar el cambio:

[UIView transitionWithView:self.addListButton 
        duration:0.3 
        options:UIViewAnimationOptionTransitionCrossDissolve 
       animations:^{ 
        [self.addListButton setSelected:YES]; 
       } completion:nil]; 

que no querían cambiar el estado de la UIButton así que acabo de cambiar la imagen normal en el bloque de animación:

[self.addListButton setImage:[UIImage imageNamed:@"icon-addbutton.png"] 
    forState:UIControlStateNormal]; 
Cuestiones relacionadas