2010-08-08 4 views

Répondre

5

Eh bien, presque. Vous devez le définir sur custom mais sans sous-classer UIButton. Ensuite, vous devriez être capable de faire quelque chose comme

myButton.layer.cornerRadius = 8; 
myButton.layer.backgroundColor = [[UIColor blueColor] CGColor]; 

Vous pouvez également configurer l'épaisseur de la bordure et la couleur de cette façon. Voir CALayer documentation pour plus de détails.

4

Je ne sais pas pourquoi quelqu'un downvoted cette réponse, il fonctionne très bien, mais tu dois ajouter le cadre QuartzCore et

#import <QuartzCore/QuartzCore.h> 

il fonctionne impressionnant, vous perdez la mise en évidence sexy et l'approvisionnement léger que le roundedRect a, mais le contrôle de la couleur de sa certainement la peine

3

Comme Oliver mentionné, la façon la plus simple de résoudre ce problème est en créant votre propre UIButton avec le type personnalisé

// initialize your own UIButton 
UIButton *myBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
// set background color 
[myBtn setBackgroundColor:[UIColor blackColor]]; 
// set corner radius 
myBtn.layer.cornerRadius = 8; 

N'oubliez pas d'importer le framework Quartzcore dans votre fichier d'implémentation .m. Sinon, vous ne pourrez pas définir le coinRadius de votre bouton personnalisé.

#import <QuartzCore/QuartzCore.h> 
+0

Merci! Comment puis-je changer le backgroundColor lorsque l'utilisateur appuie sur le bouton. En ce moment, le bouton apparaît, mais ne change pas d'état lorsqu'il est pressé. – user1107173