J'ai un bouton UIButton qui, lorsqu'il est sélectionné, ne doit pas changer d'état lorsqu'il est touché. Le comportement par défaut est qu'il est en UIControlStateHighlighted lorsqu'il est touché, et cela me met en colère.
Des suggestions ?
J'ai un bouton UIButton qui, lorsqu'il est sélectionné, ne doit pas changer d'état lorsqu'il est touché. Le comportement par défaut est qu'il est en UIControlStateHighlighted lorsqu'il est touché, et cela me met en colère.
Des suggestions ?
Votre bouton doit avoir son buttonType
défini sur Personnalisé.
Dans IB, vous pouvez décocher la case "La mise en évidence ajuste l'image".
De manière programmatique, vous pouvez utiliser theButton.adjustsImageWhenHighlighted = NO;
Des options similaires sont également disponibles pour l'état "désactivé".
Savez-vous par hasard ce que serait la version programmatique de ceci ? Pour l'instant, j'ai réussi à le faire fonctionner de façon artisanale en le désactivant et en le faisant passer pour un élément sélectionné.
Assurez-vous également que le type de bouton est réglé sur CUSTOM. (Comme Mosib Asad l'a mentionné dans une autre réponse)
Cela fonctionnera pour vous :
[button setBackgroundImage:[UIImage imageNamed:@"button_image"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted];
La 3ème ligne est le truc ici...
Cela fonctionne de la même manière pour le réglage de l'image/backgroundImage
Cela fonctionne parfaitement pour moi. Le site adjustsImageWhenHighlighted
propriété de UIButton
semble n'affecter que l'image de fond.
Sachez que si vous décidez d'attribuer une image à l'état "désactivé", vous ne devez pas appeler setBackgroundImage. Au lieu de cela, vous devez procéder comme suit : [button setImage:image forState:UIControlStateDisabled] ; Sachez également que, comme indiqué dans ce fil de discussion, la propriété UIButton adjustsImageWhenHighlighted n'a d'effet que sur l'image d'arrière-plan.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Vous devriez méditer :-P