Je veux créer un UIBarButtonItem avec une image personnalisée, mais je ne veux pas de la bordure que l'iPhone ajoute, car mon image a une bordure spéciale.
C'est la même chose que le bouton retour mais un bouton avant.
Cette application est destinée à un projet inHouse, donc je m'en fiche si Apple la rejette, l'approuve ou l'aime :-)
Si j'utilise la propriété initWithCustomView: v de UIBarButtonItem, je peux le faire:
UIImage *image = [UIImage imageNamed:@"right.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage: [image stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal];
[button setBackgroundImage: [[UIImage imageNamed: @"right_clicked.png"] stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateHighlighted];
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
[button addTarget:self action:@selector(AcceptData) forControlEvents:UIControlEventTouchUpInside];
UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
[v addSubview:button];
UIBarButtonItem *forward = [[UIBarButtonItem alloc] initWithCustomView:v];
self.navigationItem.rightBarButtonItem= forward;
[v release];
[image release];
Cela fonctionne, mais si je dois répéter ce processus dans 10 vues, ce n'est pas DRY.
Je suppose que je dois sous-classer, mais quoi?
- NSView?
- UIBarButtonItem?
Merci,
Cordialement,