197 votes

Définition d'une image pour un UIButton dans le code

Comment définissez-vous l'image pour un UIButton dans le code?

J'ai ceci:

 UIButton *btnTwo = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
btnTwo.frame = CGRectMake(40, 140, 240, 30);
[btnTwo setTitle:@"vc2:v1" forState:UIControlStateNormal];
[btnTwo addTarget:self action:@selector(goToOne) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnTwo];
 

mais ne vois pas ce qui va définir l'image pour cela.

Toute aide appréciée, merci // :)

400voto

Mike W Points 1708

Essayez quelque chose comme:

 UIImage *btnImage = [UIImage imageNamed:@"image.png"];
[btnTwo setImage:btnImage forState:UIControlStateNormal];
 

57voto

leviathan Points 5207

La solution de Mike affichera simplement l'image, mais tout jeu de titres sur le bouton ne sera pas visible, car vous pouvez définir le titre ou l'image.

Si vous souhaitez définir les deux (votre image et votre titre), utilisez le code suivant:

 btnImage = [UIImage imageNamed:@"image.png"];
[btnTwo setBackgroundImage:btnImage forState:UIControlStateNormal];
[btnTwo setTitle:@"Title" forState:UIControlStateNormal];
 

21voto

jrasmusson Points 109

Avant que cela ne fonctionne pour moi, je devais redimensionner explicitement le cadre du bouton en fonction de la taille de l'image.

 UIImage *listImage = [UIImage imageNamed:@"list_icon.png"];
UIButton *listButton = [UIButton buttonWithType:UIButtonTypeCustom];

// get the image size and apply it to the button frame
CGRect listButtonFrame = listButton.frame;
listButtonFrame.size = listImage.size;
listButton.frame = listButtonFrame;

[listButton setImage:listImage forState:UIControlStateNormal];
[listButton addTarget:self.navigationController.parentViewController action:@selector(revealToggle:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *jobsButton = [[UIBarButtonItem alloc] initWithCustomView:listButton];

self.navigationItem.leftBarButtonItem = jobsButton;
 

9voto

Azhar Points 6800

Vous pouvez le faire comme ça

 [btnTwo setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
 

9voto

Gaurav Gilani Points 469
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(0, 0, 150, 44);
[btn setBackgroundImage:[UIImage imageNamed:@"buttonimage.png"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(btnSendComment_pressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X