La mise à jour de UIImage sur UiBarButtonItem à partir de l'identificateur de l'image
Je suis actuellement en train de faire une application pour IOS, mais je vais avoir du mal à changer une image... quelle honte...
La situation est comme ceci :
J'ai une barre d'outils contenant mes articles, et un de ces éléments est le bouton de lecture créées à partir de l'identificateur de "Jouer". Donc, j'ai mon bouton de lecture sans problème. Maintenant, je veux juste de la changer pour une pause de l'image quand je clique sur l'élément, puis à nouveau l'interrupteur etc.
Donc j'ai aimé dans mon .soit h le point de me donner :
@property (weak, nonatomic) IBOutlet UIBarButtonItem *play;
J'ai essayé beaucoup de réponses que j'ai trouvé sur ce site et aucun d'eux n'a fonctionné sur mon cas :/
Le dernier que j'ai essayé quelque chose comme :
UIButton *button1=[UIButton buttonWithType:UIButtonTypeCustom];
[button1 setFrame:CGRectMake(10.0, 2.0, 45.0, 40.0)];
[button1 addTarget:self action:@selector(showLeft:) forControlEvents:UIControlEventTouchUpInside];
[button1 setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
UIBarButtonItem *button = [[UIBarButtonItem alloc]initWithCustomView:button1];
self.play = button;
J'ai aussi essayé :
self.play.customView = button1;
Mais aucun d'entre eux fonctionnent vraiment, je peux obtenir l'image en faisant
self.view = button1;
Mais seulement l'image (donc la création de la UIImage est d'accord) dans le milieu de l'écran....
(Si vous pouvez aussi me dire comment revenir à la lire à l'aide de l'identificateur il serait également très utile merci beaucoup)
Merci pour votre aide.
Eh bien, je vous suggérons d'utiliser les images en fonction des différents états. Définir une image pour UIControlStateNormal, et de l'attribuer bouton de lecture et de définir une autre image pour UIControlStateSelected et assigner le bouton pause. Chaque fois que le bouton est sélectionné, passer à l'état de bouton à l'aide d'une simple règle de ce type; bouton.selected = !bouton.sélectionné j'espère que cela résout votre problème.
OriginalL'auteur Clad Clad | 2013-08-05
Vous devez vous connecter pour publier un commentaire.
Je pense que cela devrait fonctionner.
Bien sûr, vous aurez à définir l'image d'arrière-plan à l'origine (en viewDidLoad) à la "Lecture" de l'image pour que cela fonctionne.
Après Edit:
Si vous souhaitez utiliser le système de lecture et de pause bouton, autant que je sache, vous devez remplacer le bouton. Je ne pense pas qu'il y a un moyen de changer l'image. Alors, j'ai fait de cette façon. Le bouton a été mis en place au bureau de l'IB avec la prise playPauseButton, et l'action playClick. J'ai aussi fait une prise de la barre d'outils (barre d'outils).
Je viens de vérifier pour l'identificateur de changer, mais même résultat. création : [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemPause cible:soi action:@selector(pushPlay:)]; et de même pour la pièce de un ensuite dans mon code auto.jouer = pauseIco mais il ne fait rien.
J'ai enfin succed pour en faire des œuvres en mettant uniquement mes propres images, sans l'aide de l'identificateur, mais si vous connaissez un moyen de le faire avec l'identificateur je serais reconnaissant à vous. Merci beaucoup.
J'ai mis à jour ma réponse à montrer comment je l'ai fait à l'aide des touches du système.
Enfin j'ai utilisé les 2 images et pas d'identifiants pour le moment, mais merci pour votre aide 🙂
OriginalL'auteur rdelmar
Si le bouton est déjà créé et que vous avez une prise de courant, vous pouvez simplement définir comme ceci:
Fonctionne comme un charme.
OriginalL'auteur Cristian Pena
Créer un bouton personnalisé. Modifier la taille du bouton en fonction de l'image. Définir l'image du bouton. Bouton ajouter vue de UIBarButton jouer.
.h
IBOutlet UIBarButtonItem *jouer;
@property(nonatomic, retain) IBOutlet UIBarButtonItem *jouer;
.m
Assurez-vous de connecter votre prise de courant pour le UIBarButtonItem dans Interface Builder.
Bonne chance!
OriginalL'auteur
La réponse de rdelmar c'est génial. Je voudrais ajouter une amélioration permettant d'éviter un clignotement de la touche en raison de la supprimer et ajouter de la touche.
OriginalL'auteur P. LoThaR
Vous pouvez essayer quelque chose comme cela pour votre bouton personnalisé comme l'un des UIBarButtonItem.
OriginalL'auteur abodetheinc