2010-05-27 10 views
6

Ho usato il codice qui sotto per creare un pulsante sulla barra di navigazione con un'immagine.iPhone SDK: come aggiungere un'immagine a un UIBarButton?

Posso vedere l'immagine ma posso anche vedere il bordo del pulsante attorno ad esso. La mia domanda è, come posso sbarazzarmi del bordo del pulsante. Tutto quello che voglio vedere è l'immagine sulla barra di navigazione, senza bordi.

UIBarButtonItem *settingsBtn = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icon_prefs.png"] style:UIBarButtonItemStylePlain target:self action:@selector(openSettings:)]; 
[[self navigationItem] setLeftBarButtonItem:settingsBtn]; 
[settingsBtn release]; 

Grazie in anticipo. Eventuali puntatori, collegamenti per leggere ulteriormente o esempi apprezzati.

risposta

20

Ecco un frammento di codice da uno dei miei progetti correnti. Carica un'immagine con trasparenza per un UIBarButtonItem:

UIImage* image = [UIImage imageNamed:@"some-image.png"]; 
CGRect frame = CGRectMake(0, 0, image.size.width, image.size.height); 
UIButton* someButton = [[UIButton alloc] initWithFrame:frame]; 
[someButton setBackgroundImage:image forState:UIControlStateNormal]; 
[someButton setShowsTouchWhenHighlighted:YES]; 
UIBarButtonItem* someBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:someButton]; 
[self.navigationItem setRightBarButtonItem:someBarButtonItem]; 
[someBarButtonItem release]; 
[someButton release]; 
+0

Grazie Shaggy Frog. Ho aggiunto questa linea per farlo fare qualcosa quando viene premuto. [settingsButton addTarget: self action: @selector (openSettings :) forControlEvents: UIControlEventTouchUpInside]; – butchcowboy

+0

Ho inserito quella linea ma l'ho rimossa, credo che avrei dovuto lasciarla dentro :) –