Définir un button image de fond iPhone par programmation

Dans Xcode, comment définir l'arrière-plan d'un button en tant qu'image? Ou, comment pouvez-vous définir un dégradé de fond dans le button?

Code complet:

+ (UIButton *)buttonWithTitle:(NSSsortingng *)title target:(id)target selector:(SEL)selector frame:(CGRect)frame image:(UIImage *)image imagePressed:(UIImage *)imagePressed darkTextColor:(BOOL)darkTextColor { UIButton *button = [[UIButton alloc] initWithFrame:frame]; button.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; [button setTitle:title forState:UIControlStateNormal]; [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; UIImage *newImage = [image stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0]; [button setBackgroundImage:newImage forState:UIControlStateNormal]; UIImage *newPressedImage = [imagePressed stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0]; [button setBackgroundImage:newPressedImage forState:UIControlStateHighlighted]; [button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside]; // in case the parent view draws with a custom color or gradient, use a transparent color button.backgroundColor = [UIColor clearColor]; return button; } UIImage *buttonBackground = UIImage imageNamed:@"whiteButton.png"; UIImage *buttonBackgroundPressed = UIImage imageNamed:@"blueButton.png"; CGRect frame = CGRectMake(0.0, 0.0, kStdButtonWidth, kStdButtonHeight); UIButton *button = [FinishedStatsView buttonWithTitle:title target:target selector:action frame:frame image:buttonBackground imagePressed:buttonBackgroundPressed darkTextColor:YES]; [self addSubview:button]; 

Pour définir une image:

 UIImage *buttonImage = [UIImage imageNamed:@"Home.png"]; [myButton setBackgroundImage:buttonImage forState:UIControlStateNormal]; [self.view addSubview:myButton]; 

Pour supprimer une image:

 [button setBackgroundImage:nil forState:UIControlStateNormal] 

Cela fonctionnera

 UIImage *buttonImage = [UIImage imageNamed:@"imageName.png"]; [btn setImage:buttonImage forState:UIControlStateNormal]; [self.view addSubview:btn]; 

Au cas où cela setBackgroundImage quelqu'un setBackgroundImage n'a pas fonctionné pour moi, mais setImage fait

Vous pouvez définir une image d'arrière-plan sans aucun code!

Il suffit d'appuyer sur le button auquel vous voulez append une image dans Main.storyboard , puis, dans la barre des utilitaires à droite, appuyez sur l' inspecteur d'attributes et réglez l'arrière-plan sur l'image que vous voulez! Assurez-vous que vous avez l'image que vous voulez dans les files de support à gauche.

Lors de la définition d'une image dans une table ou dans une cellule de vue de collection, cela a fonctionné pour moi:

Placez le code suivant dans votre "cellForRowAtIndexPath" ou "cellForItemAtIndexPath"

// Obtenir le pointeur sur la cellule. Réponse suppose que vous avez fait cela, mais ici pour l'exhaustivité.

 CheeseCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cheeseCell" forIndexPath:indexPath]; 

// Récupère l'image de la bibliothèque de documents et place-la dans la cellule.

 UIImage *myCheese = [UIImage imageNamed:@"swissCheese.png"]; [cell.cheeseThumbnail setImage:myCheese forState:UIControlStateNormal]; 

* NOTE: xCode a semblé être accroché à ce sujet pour moi. J'ai dû redémarrer xCode et le simulateur, cela a fonctionné correctement.

Cela suppose que vous avez configuré le fromage en tant qu'IBOutlet … et d'autres choses … j'espère que vous êtes assez familier avec les vues de table / collection et que vous pouvez l'intégrer.

J'espère que cela t'aides.

Rapide

Réglez l'image du button comme ceci:

 let myImage = UIImage(named: "myImageName") myButton.setImage(myImage , forState: UIControlState.Normal) 

myImageName est le nom de votre image dans votre catalogue d'actifs.

En une ligne, nous pouvons définir l'image avec ce code

 [buttonName setBackgroundImage:[UIImage imageNamed:@"imageName"] forState:UIControlStateNormal]; 

Code pour l'image d'arrière-plan d'un button dans Swift 3.0

  • buttonName.setBackgroundImage(UIImage(named: "facebook.png"), for: .normal) J'espère que cela aidera quelqu'un.