2010-04-18 4 views
3

Dans l'application Maps, lorsque vous appuyez sur le bouton de suivi dans le coin inférieur gauche, il indique que vous l'avez appuyé. Cela le fait se comporter comme un bouton radio, et il va briller une fois que vous déplacez la carte. Y a-t-il un moyen simple de mettre un bouton dans l'état pressé?Comment faire un UIBarButtonItem 'lueur'?

Répondre

10

Définissez son style sur UIBarButtonItemStyleDone.

+0

UIBarButtonItemStyleDone est un bouton « bleu ». Je ne pense pas que ce soit une lueur, non? – bentford

+0

Eh bien, ce n'est pas techniquement une lueur, mais c'est ce que fait l'application Maps (comme mentionné dans la question). –

+0

Cela atteint le bleu, mais pas la lueur. –

11

Je crois que vous recherchez la propriété showsTouchWhenHighlighted pour la classe UIButton. Essayez ceci.

myButton.showsTouchWhenHighlighted = YES; 
+2

La question concerne un UIBarButtonItem pas un UIButton, donc ce n'est pas pertinent. – Emil

+3

Il n'est pas clair d'après les détails de la question que c'est le cas. Et de toute façon, vous pouvez créer un UIBarButtonItem avec un UIButton, donc je crois que ma réponse est pertinente. UIBarButtonItem * buttonItem = [[UIBarButtonItem alloc] initWithCustomView: monBouton]; – Drewsmits

+0

Je cherchais un effet pour UIButton, merci pour votre réponse! – mxg

1

Utilisez UIBarButtonItemStylePlain.

UIBarButtonItemStylePlain
quand on tape des effets brillants.

3

Vous pouvez faire son CustomView un bouton personnalisé comme celui-ci:

`

UIImage *image = [UIImage imageNamed:@"someimage"]; 
UIImage *imageHL = [UIImage imageNamed:@"someimage_selected"]; 
button = [UIButton buttonWithType:UIButtonTypeCustom]; 

[button setImage:image forState:UIControlStateNormal]; 
[button setImage:imageHL forState:UIControlStateHighlighted]; 
[button addTarget:self action:@selector(doStuff:) forControlEvents:UIControlEventTouchUpInside];  
myBarButtonItem.customView = button; 

`

0

Si vous avez un UIBarButtonItem avec image/text ou UIBarButtonSystemItem, puis utilisez UIBarButtonItemStylePlain

barButton.style = UIBarButtonItemStylePlain; 

Si vous avez un UIBarButtonItem avec une vue personnalisée, puis, pour chaque UIButton doit ajouter le code suivant:

uiButton.showsTouchWhenHighlighted = YES; 
Questions connexes