Changer (pas init) un identifiant UIBarButtonItem par programme?
De l'IB, je peux mettre l'identifiant de l'UIBarButtonItem à "jouer" qui ajoute une image d'un bouton de lecture (triangle pointant vers la droite).
Est-il un moyen de changer cette image par programmation? Je veux changer en "pause" lorsque la lecture est enfoncé.
Je sais que vous pouvez initialiser un UIBarButtonItem avec un identifiant mais je n'ai pas encore trouver un moyen de le changer après qu'il a été initialisé. Est-ce même possible?
La seule chose que je peux penser à est de supprimer l'ancien bouton et initialiser un nouveau à sa place, mais cela ne semble guère efficace.
Toutes les pensées?
source d'informationauteur nebs
Vous devez vous connecter pour publier un commentaire.
Ok j'ai googlé cette question de la mort et a couru dans exemple de code à partir d'Apple où ils font exactement la même chose (lecture /pause/pause touche graphique sur un bouton de barre d'outils). Mais au lieu d'utiliser le construit en lecture et pause identificateurs de
UIBarButtonItem
ils utilisent une coutumeUIButton
et de basculer des images personnalisées.Donc, si Apple passe par la difficulté de la création et de basculement des images personnalisées sur un UIButton au lieu de construit dans de lecture et de pause
UIBarButtonItem
boutons, puis je pense que c'est assez sûr de dire il n'y a aucun moyen de modifier par programmation de l'identifiant d'unUIBarButtonItem
.C'est ce qu'ils (Apple) faire basculer les images lorsque le bouton est enfoncé:
De remplacer p.en jouant avec tout ce BOOL vous souhaitez maintenir l'état de votre bouton.
playButton
est la coutumeUIButton
dans la barre d'outils.pauseBtnBG
etplayBtnBG
sont les images de la bascule.Cela semble fonctionner assez bien:
Dans cet exemple, j'ai eu une barre d'outils pour une UIWebView et quand quelqu'un a cliqué Recharger je voulais que ça change pour l'Arrêter. La barre d'outils ne disposait que d'un espace flexible et un bouton - pour aligner à droite le bouton - j'ai donc pris une référence à l'ancien bouton, faites-en un nouveau avec le même sélecteur comme l'ancien, réinitialiser les boutons sur la barre d'onglet, puis relâché le bouton d'origine.
Pas la plus jolie, mais vous pouvez utiliser tous les boutons standard sans avoir à remplacer le bouton de classe(s).
Qu'en 2 empilées les barres d'outils? Ensuite, vous pouvez avoir un système de boutons dans le haut et les autres en bas. Si le jeu est enfoncé, puis il suffit de masquer la barre d'outils supérieure.