Dans Xcode, comment définir l'arrière-plan d'une UIButton
en tant qu'image? Ou, comment pouvez-vous définir un dégradé d'arrière-plan dans la variable UIButton
?
Code complet:
+ (UIButton *)buttonWithTitle:(NSString *)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];
Ça va marcher
UIImage *buttonImage = [UIImage imageNamed:@"imageName.png"];
[btn setImage:buttonImage forState:UIControlStateNormal];
[self.view addSubview:btn];
Si cela aide quelqu'un, setBackgroundImage
n'a pas fonctionné pour moi, mais setImage
l'a fait.
Vous pouvez définir une image de fond sans aucun code!
Il vous suffit d'appuyer sur le bouton correspondant à votre image dans Main.storyboard, puis, dans la barre utilities à droite, appuyez sur l'inspecteur attributs et définissez l'arrière-plan sur l'image souhaitée! Assurez-vous que vous avez la photo souhaitée dans les fichiers de support à gauche.
Rapide
Définissez l'image du bouton comme suit:
let myImage = UIImage(named: "myImageName")
myButton.setImage(myImage , forState: UIControlState.Normal)
où myImageName
est le nom de votre image dans votre catalogue d’actifs.
Lorsque vous définissez une image dans une tableViewCell
ou collectionViewCell
, cela a fonctionné pour moi:
Placez le code suivant dans votre cellForRowAtIndexPath
ou cellForItemAtIndexPath
// Obtient le pointeur sur la cellule. La réponse suppose que vous avez fait cela, mais ici, pour être complet.
CheeseCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cheeseCell" forIndexPath:indexPath];
// Récupère l'image de la bibliothèque de documents et la définit dans la cellule.
UIImage *myCheese = [UIImage imageNamed:@"swissCheese.png"];
[cell.cheeseThumbnail setImage:myCheese forState:UIControlStateNormal];
NOTE: xCode semblait se raccrocher à cela pour moi. Je devais redémarrer xCode et le simulateur, cela fonctionnait correctement.
Cela suppose que vous avez configuré fromage en tant qu'IBOutlet ... et quelques autres éléments ... espérons que vous êtes suffisamment familiarisé avec les vues de table/collection et que vous pouvez l'adapter.
J'espère que cela t'aides.
Dans une ligne, nous pouvons définir l'image avec ce code
[buttonName setBackgroundImage:[UIImage imageNamed:@"imageName"] forState:UIControlStateNormal];