2011-04-18 14 views
14

Cuando toco el botón en ese momento quiero cambiar la imagen & cuando suelte la imagen del botón táctil como está.UIButton - En el toque cambiar la imagen

Deseo aplicar el código a continuación, pero no es mi expectativa.

por favor, dame cualquier sugerencia .....

-(IBAction)actionEnter:(id)sender{ 
      if ([sender isSelected]) { 
       [sender setImage:[UIImage imageNamed:@"enter-hover.png"] 
         forState:UIControlStateNormal]; 
       [sender setSelected:NO]; 
      } else { 
       [sender setImage:[UIImage imageNamed:@"enter.png"] 
         forState:UIControlStateSelected]; 
       [sender setSelected:YES]; 
      } 
+0

comprobar mi respuesta .. – Jhaliya

Respuesta

13

Puede utilizar UIControlStateHighlighted para esto.

 
[myButton setImage:[UIImage imageNamed:@"enter-hover.png"] 
      forState:UIControlStateHighlighted]; 

También puede configurar esto desde el generador de interfaz configurando la imagen para el estado resaltado.

1

pienso, podría configurar la imagen en un principio para el estado normal y seleccionado ..

Pruebe con más adelante cuando se crea el objeto UIButton. [utilizar las imágenes como por su exigencia]

[myButton setImage:[UIImage imageNamed:@"enter.png"] 
      forState:UIControlStateNormal]; 
[myButton setImage:[UIImage imageNamed:@"enter-hover.png"] 
      forState:UIControlStateSelected]; 
5

creo que esto debería hacerlo. Establecer las imágenes después de crear el botón

[yourButton setImage:[UIImage imageNamed:@"enter-hover.png"] 
      forState:UIControlStateSelected]; 
[yourButton setImage:[UIImage imageNamed:@"enter.png"] 
      forState:UIControlStateNormal]; 

y hacer esto

- (IBAction)actionEnter:(id)sender{ 
    UIButton *button = (UIButton *)sender; 
    button.selected = !button.selected; 
} 
-1

para cambiar la imagen inmediatamente utilizar la propiedad BackgroundImage.

0

@ 7KV7 me hizo pensar. Tengo botones favoritos e ignorar que quiero usar para marcar las imágenes y las imágenes favoritas que no quiero volver a ver nunca más. Usé su método para inicializar los botones y luego modifiqué ligeramente su método para activar y desactivar los botones.

En este ejemplo, si marca una imagen como favorita, desea desactivar el botón de ignorar y viceversa. El delegado maneja las cosas de la base de datos.

self.favoriteButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
     self.ignoreButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

     [self.favoriteButton setImage:[UIImage imageNamed:@"Favorite-Selected"] 
          forState:UIControlStateSelected]; 
     [self.favoriteButton setImage:[UIImage imageNamed:@"Favorite"] 
          forState:UIControlStateNormal]; 

     [self.ignoreButton setImage:[UIImage imageNamed:@"Ignore-Selected"] 
          forState:UIControlStateSelected]; 
     [self.ignoreButton setImage:[UIImage imageNamed:@"Ignore"] 
          forState:UIControlStateNormal]; 

Si se acaba de alternar un botón de encendido o apagado, no será necesario para que sea una propiedad, ya que el remitente buttonPressed sabe qué botón ha sido presionado. Necesito que sean propiedad ya que necesito decir el botón opuesto para desactivar su resaltado.

- (void)favoriteIgnore:(UIButton *)buttonPressed { 

    // Toggle the tapped button 
    buttonPressed.selected = (buttonPressed.selected) ? NO : YES; 

    id <ScoringToolbarDelegate> TB_delegate = _delegate; 

    // Turn off the other button and call the delegate 
    if ([buttonPressed.currentTitle isEqualToString:@"favorite"]) { 

     self.ignoreButton.selected = NO; 
     [TB_delegate favoriteButtonPressed]; 

    } else { 

     self.favoriteButton.selected = NO; 
     [TB_delegate ignoreButtonPressed]; 
    } 
} 
1

En Swift:

button.setImage(UIImage(named: "enter.png"), forState: [.Selected, .Highlighted])

Cuestiones relacionadas