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)
où 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.