2009-08-04 10 views
0

Je suis le lien suivant:Sélectionnez UIButton sans plusieurs images

How to programatically highlight a UIButton?

Dans deux premières lignes de leur code, je trouve:

UIImage* normalImage = [_infoButton imageForState:UIControlStateNormal];<br> 
UIImage* highlighted = [_infoButton imageForState:UIControlStateHighlighted]; 

Il semble qu'ils ont utilisé plusieurs images , pour leur infoButton. J'ai une application avec beaucoup de boutons, et chaque bouton a des images différentes ce qui rend mon application très énorme en taille. Si je fais des images différentes pour normalState et highlightedState ma taille de l'application va doubler. Donc, j'ai besoin de quelques idées comme le flou, ou la taille du bouton ou de l'image, ou alpha vers le bas, pour mon image de bouton. Je ne connais pas le code et c'est ma question. Comment animer/mettre en surbrillance le bouton sur écoute dans l'iPhone?

Merci d'avance.

Répondre

3

Tout d'abord, "très grande taille" est une chose relative. Est-ce la limite de 10 Mo qui empêche le téléchargement via le réseau? Sinon, vous ne devriez peut-être pas vous en préoccuper. Deuxièmement, avez-vous essayé d'enregistrer les images dans un formulaire avec une meilleure compression, comme le format JPEG? Troisièmement, ces "images différentes" sont-elles sensiblement différentes, comme dans "Dans un état, il ressemble à un éléphant et dans un autre état, il ressemble au Taj Mahal"? Ou s'agit-il d'avoir besoin de différents "états d'éléphants"? Cela ressemble à ce dernier.

Une possibilité consiste à définir certaines propriétés du bouton pour activer un comportement de dessin différent. Regardez ces deux options:

button.reversesTitleShadowWhenHighlighted 
button.adjustsImageWhenHighlighted 

ou essayer différents

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state; 

Ils ont effectivement fourni quelques options.

1

Ok! J'ai une solution.

C'est très similaire à mon exigence. Oui, il peut y avoir d'autres solutions,

je trouve qui est plus proche de ma demande.

sélectionnez votre UIButton en vue & ensemble Bouton Attributs

-> coche sur -> Touch montre Highlight.