Je veux créer un UIBarButtonItem avec une image personnalisée, mais je ne veux pas la bordure que l'iPhone ajoute, car mon image a une bordure spéciale.UIBarButtonItem avec image personnalisée et sans bordure
C'est la même chose que le bouton de retour, mais un bouton vers l'avant.
Cette application est pour un projet InHouse, donc je ne se soucient pas si Apple rejette ou approuve ou qu'il aime :-)
Si je l'initWithCustomView: propriété v du 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 en 10 vues, ce n'est pas sec. Je suppose que je dois sous-classer, mais quoi?
- NSView?
- UIBarButtonItem?
grâce,
salutations,
Merci d'avoir partagé votre code, c'est tout ce que je avais besoin :). – Max
Tout le monde, j'ai utilisé la réponse fournie par San le 6 février. Il m'a fallu 5 minutes pour intégrer mon Storyboard, et ça a fonctionné parfaitement. La propriété Selector est sous l'inspecteur de connexions de IB. Contrôle glisser de UIButton à l'objet ViewController et les méthodes apparaîtront. Appuyez sur la méthode que vous voulez et vous avez fait à peu près. La seule chose qui reste serait un peu de nettoyage de code. Utilisé btnXXXXX.hidden pour masquer et afficher pour remplacer barbuttonitem = nil. Mais cette méthode était facile et très propre. – user589642