2010-03-22 5 views
0

J'utilise l'étiquette d'un bouton pour envoyer une valeur dans une fonction. Cependant, je veux que le bouton soit invisible. La couleur d'arrière-plan est désactivée dans IB et la couleur du texte est également définie sur rien, mais le texte apparaît toujours sur le bouton.Comment cacher le texte sur une étiquette dans Obj-C?

Existe-t-il un autre moyen d'avoir un bouton d'effacement qui envoie une valeur lorsqu'on clique dessus?

Si je pouvais désactiver/cacher le texte sur le stock UIButton qui serait parfait ...

+1

Vous utilisez l'étiquette d'un bouton pour envoyer une valeur dans une fonction? Yikes. Tu ne peux pas utiliser une variable? – marcc

+0

Comment utiliser un bouton de IB pour envoyer une variable? Je ne peux pas trouver comment le faire. Je me suis dit que depuis que je pouvais lire l'étiquette, je pouvais la définir et l'utiliser pour la concaténation. Cela dit, je sais qu'il doit y avoir un meilleur moyen. Devrais-je créer tous les boutons dans le code et affecter la valeur dont j'ai besoin pour en sortir? Il y a beaucoup de boutons, donc je cherchais à rester dans IB pour les aligner sur l'artwork (environ 70). – dbonneville

+0

Je pourrais créer 70 méthodes différentes qui écrivent une valeur unique à une variable, puis faire en sorte que la méthode de mise à jour de l'image lise cette valeur. Cela fonctionnerait mais cela semble aussi stupide que ce que j'essaye de faire maintenant. :) – dbonneville

Répondre

1

vous pouvez faire quelque chose comme

MyButton.titleLabel.alpha = 0.0; 
+0

Si le bouton est passé à la méthode en tant qu'expéditeur (id), comment relanceriez-vous cela? [expéditeur titleLabel.alpha = 0.0] ne fonctionne pas ... sender.titleLabel.alpha = 0.0 ne fonctionne pas this.titleLabel.alpha = 0.0 ne fonctionne pas ... Type – dbonneville

+0

jeta ... alors ça peut marcher ... –

+0

Mais comment lancez-vous un expéditeur pour pouvoir accéder en tant que MyButton? – dbonneville

0

Note: alors que certains peuvent le trouver trop pédant la question ne devrait pas être comment puis-je cacher le texte d'une étiquette dans l'objectif C, mais comment puis-je cacher le texte d'un bouton dans le toucher de cacao.

Également d'accord avec marcc, l'utilisation de l'étiquette d'un bouton pour envoyer une valeur dans une fonction sonne un peu douteuse. Pouvons-nous demander un contexte pour savoir pourquoi vous voulez un bouton invisible? Ou voulez-vous juste un bouton transparent sans texte? Si oui, a-t-il des images? Comment l'utilisateur aurait-il une idée de ce qu'il fait?

+0

Je crée un visuel qui fonctionne un peu comme une barre de progression avec un arrière-plan très personnalisé. Lorsque vous cliquez sur le bouton 5, les boutons 1-4 s'allument. L'œuvre brille et saigne au-delà des limites des boutons. Par conséquent, j'utilisais un bouton invisible pour simplement mettre à jour le UIImageView en arrière-plan. J'utilisais l'attribut Title pour transmettre la valeur a, comme "02" et "03". Je crée ensuite une chaîne concaténée et l'utilise pour définir l'image à l'arrière-plan. – dbonneville

+0

Fonctionne parfaitement, sauf que l'état de surbrillance clignote un peu de texte blanc. Je suis nouveau à Obj-C, et je suis habitué à simplement pirater en Perl, JavaScript. Il semble que je devrais être capable de créer un nouveau bouton, avec une sorte de propriété de titre que je pourrais passer (en javascript, ce serait simple comme button.someValue = "05" et ensuite passer button.someValue dans un Mais je ne sais pas comment le faire ici – dbonneville

+0

J'ai environ 70 états qui doivent tous être à l'écran avec le même fond perdu, donc utiliser IB pour positionner les boutons Donc, revenons au problème: j'ai besoin de boutons invisibles qui peuvent passer un attribut (ou simplement passer leur auto entier, ce qui est ce que je pense qui se passe avec '(id) expéditeur') pour y accéder et concaténer une variable avec laquelle référencer une image à insérer dans un UIImageView – dbonneville

1

[MyButton setHidden:YES] pour afficher et masquer

[MyButton setHidden:NO] pour Démasquer le bouton.

utilisation:

[MyButton setEnable:NO]; 
[MyButton setHighlighted:YES]; 
[MyButton setEnable:YES]; 

pour cacher

Et

[MyButton setEnable:NO]; 
[MyButton setHighlighted:YES]; 
[MyButton setEnable:NO]; 

à réafficher.

+0

Le code est valide comme ceci: [sender setHidden ... mais cela n'arrête pas le clignotement. J'ai ajouté YES à un sur Touch Down, puis j'ai ajouté NO sur le On Touch Up, mais il clignait toujours le texte d'état actif. Si je n'ajoute pas le NO à la retouche, il ne clignote pas ... mais je ne peux plus cliquer sur le bouton car il est parti! Si je pouvais obtenir l'alpha du labelText, cela pourrait fonctionner, mais je ne vois pas comment. – dbonneville

+0

utilisation: [MyButton setEnable: NO]; [MyButton setHighlighted: YES]; [MyButton setEnable: YES]; pour masquer et [MyButton setEnable: NO]; [MyButton setHighlighted: YES]; [MyButton setEnable: NO]; pour afficher. – Manjunath

+0

Just Checkout la réponse éditée. – Manjunath

Questions connexes