UIButton – Sur le toucher changer l'image

Quand je touche le button à ce moment je veux changer l'image et quand je relâche l'image du button tactile est tel qu'il est.

Je veux appliquer ci-dessous le code mais ce n'est pas avec mes attentes.

S'il vous plaît donnez-moi une 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]; } 

Vous pouvez utiliser UIControlStateHighlighted pour cela.

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

Vous pouvez également définir ceci à partir du constructor d'interface en définissant l'image pour l'état en surbrillance.

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

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

et fais ça

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

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

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

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

Dans Swift:

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

@ 7KV7 m'a fait réfléchir. J'ai les buttons 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 buttons, puis légèrement modifié sa méthode pour activer et désactiver les buttons.

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

  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 activez ou désactivez simplement un button, vous n'avez pas besoin d'en faire une propriété, car l'expéditeur buttonPressed sait quel button a été enfoncé. Je dois les avoir être la propriété puisque j'ai besoin de dire au button 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 isEqualToSsortingng:@"favorite"]) { self.ignoreButton.selected = NO; [TB_delegate favoriteButtonPressed]; } else { self.favoriteButton.selected = NO; [TB_delegate ignoreButtonPressed]; } } 

Pour changer l'image, utilisez immédiatement la propriété backgroundImage.