2011-04-18 6 views
14

Lorsque je touche le bouton à ce moment je veux changer l'image & quand je relâche l'image du bouton tactile est tel qu'il est.UIButton - Au toucher changer l'image

Je veux appliquer le code ci-dessous, mais ce n'est pas mon attente.

s'il vous plaît me donner toute suggestion .....

-(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

vérifier ma réponse .. – Jhaliya

Répondre

13

Vous pouvez utiliser UIControlStateHighlighted pour cela.

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

Vous pouvez également définir ce paramètre à partir du constructeur d'interface en définissant l'image pour l'état en surbrillance.

1

Je pense, vous pouvez définir l'image au début de l'état normal et sélectionné ..

Essayez avec ci-dessous lorsque vous créez l'objet UIButton. [Utilisez les images que selon vos besoins]

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

Je pense que cela devrait le faire. Définissez les images après avoir créé le bouton

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

et faire

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

pour changer l'image utiliser immédiatement la propriété backgroundImage.

0

@ 7KV7 m'a fait réfléchir. J'ai les boutons favoris et ignorer que je veux utiliser pour marquer les images et les images préférées que je ne veux plus jamais voir. J'ai utilisé sa méthode pour initialiser les boutons, puis légèrement modifié sa méthode pour activer et désactiver les boutons.

Dans cet exemple, si vous marquez une image comme favori, vous voulez désactiver le bouton Ignorer et vice versa. Le délégué gère les éléments de la base de données.

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 vous êtes affin un bouton ou de désactiver, vous aurez pas besoin de faire une propriété, puisque l'expéditeur ButtonPressed sait quel bouton a été pressé. Je dois les avoir être la propriété puisque j'ai besoin de dire au bouton opposé pour désactiver sa surbrillance.

- (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

Swift:

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

Questions connexes