2010-09-14 14 views
3

Je voudrais ajouter un aspect 3D ou brillant à certains UIButtons de l'iPhone, mais le faire sans l'utilisation de fichiers PNG ou d'images extensibles. J'ai beaucoup de boutons de formes et de tailles variées avec beaucoup de couleurs qui sont générées à la volée, donc les images prérendues ne sont pas réalisables dans mon cas.Comment est-ce que je confère un aspect brillant à UIButtons par programmation?

Comment allez-vous dessiner le gloss sur ces boutons par programmation? Une façon de faire cela par programme est de modifier les propriétés d'une couche UIButton

Répondre

3

En this answer, je fournis un certain code pour dessiner un dégradé de brillance sur un UIView, mais Mirko's answer à cette même question montre une façon plus performante de le faire.

J'ai créé un style de bouton 3D plus élaboré, avec brillant et ombrage, à titre d'exemple pour mon cours. Le code pour ce bouton 3-D fait partie du paquet qui peut être téléchargé here (recherchez la sous-classe MATCGlossyButton UIButton). Je décris le dessin de cet élément dans la vidéo pour la classe Quartz 2D du semestre de printemps de mon cours de développement iPhone sur iTunes U.

-1
UIButton *button1     = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 200, 40)]; 
button1.backgroundColor   = [UIColor blackColor]; 

CAGradientLayer *gradient = [CAGradientLayer layer]; 
gradient.frame = button1.bounds; 
gradient.colors = [NSArray arrayWithObjects: (id)[[UIColor grayColor] CGColor],(id)[[UIColor blackColor] CGColor], nil]; 
[button1.layer insertSublayer:gradient atIndex:0]; 
+2

Une explication de ce que cela ferait serait bien. –