Je veux être capable de créer des boutons personnalisés qui ont un fond d'image en utilisant une image de fond de type scale9, ce qui signifie que la largeur du bouton peut être dynamique. J'ai vu un exemple sur le web de gens qui le font sur une base par bouton mais il me semble qu'il ne serait pas mieux de créer un nouvel objet qui sous-classe UIButton que vous pouvez ensuite utiliser dans Interface Designer comme la classe pour tout custom bouton (bouton rond arrondi réglé sur personnalisé).Boutons extensibles iPhone/iPad extensibles - sous-classes UIButton
Voici ce que j'ai jusqu'à présent.
#import <Foundation/Foundation.h>
@interface LargeButton : UIButton {
}
@end
#import "LargeButton.h"
@implementation LargeButton
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.frame = CGRectMake(0, 0, 170.0, 48.0);
// Center the text vertically and horizontally
self.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
UIImage *image = [UIImage imageNamed:@"btnBigPurple.png"];
// Make a stretchable image from the original image
UIImage *stretchImage =
[image stretchableImageWithLeftCapWidth:15.0 topCapHeight:0.0];
// Set the background to the stretchable image
[self setBackgroundImage:image forState:UIControlStateNormal];
// Make the background color clear
//self.backgroundColor = [UIColor clearColor];
}
return self;
}
@end
Cela ne semble toutefois pas fonctionner. Lorsque je lance ce simulateur, je vois le texte du bouton mais le bouton n'a pas d'arrière-plan. J'ai placé un point d'arrêt et je sais qu'il fonctionne et vérifie la console et n'ai aucune erreur.
Quelqu'un peut-il aider? résoudre ce problème ou est-ce que ma façon de penser est incorrecte?
Merci
Je me souviens avoir lu quelque part que les images dans UIButtons doivent avoir certaines normes d'image RVB. Si vous n'avez pas une image qui adhère à cela, il ne s'affichera pas. Je ne me souviens pas où, bien que je ne suis pas beaucoup d'aide :( – gabaum10
merci pour les commentaires.L'image fonctionne si je le définis sur le bouton comme l'arrière-plan sans sous-classe UIButton et réglage de mon bouton pour utiliser mon objet, donc je ne sais pas pense que c'est un problème d'image – Chris