Problema aggiunta di un'immagine alla barra degli strumenti utilizzando UIBarButtonItem, la visualizzazione di scatola bianca vuota invece dell'immagine

StackOverflow https://stackoverflow.com/questions/4028927

Domanda

Non sono sicuro di quello che sto facendo male. Il nome del file è corretto, lo stile è impostato su pianura. Ma Im ottenendo una scatola bianca banca delle dimensioni della mia immagine. Im usando UINavigationController.

Si prega di assistere e grazie grazie in anticipo.

** PS: Sono sorta di nuovo da Objective C in modo da non essere troppo duro con me. ;)

 UIBarButtonItem *toolbarChannelGuideButton = [[UIBarButtonItem alloc]
     initWithImage:[UIImage imageNamed:@"channel-guide-button.png"]
     style:UIBarButtonItemStylePlain
     target:self
     action:@selector(action:)];


self.toolbarItems = [NSArray arrayWithObjects:toolbarChannelGuideButton, nil];
[toolbarChannelGuideButton release];
È stato utile?

Soluzione

Il motivo che stava creando la maschera bianca era perché il doesnt UIToolBar consentire immagini a colori su di esso per impostazione predefinita. Il modo per ottenere questo risultato è la creazione di un UIImage quindi assegnare un UIButton a tale immagine. Quindi creare un UIBarButton utilizzando initWithCustomView con la UIButton come la visualizzazione personalizzata.

Codice:

     //Load the image   
     UIImage *buttonImage = [UIImage imageNamed:@"your-image.png"];

     //create the button and assign the image
     UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
     [button setImage:buttonImage forState:UIControlStateNormal];

     //sets the frame of the button to the size of the image
     button.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);

     //creates a UIBarButtonItem with the button as a custom view
     UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button];



     self.toolbarItems = [NSArray arrayWithObjects:customBarItem, nil];
     [customBarItem release];

Altri suggerimenti

A partire da iOS 7 è possibile utilizzare qui sotto:

 UIImage *image = [[UIImage imageNamed:@"myImage.png"];
 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
 UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(YOUR_METHOD:)];

Il canale-guida-button.png appartengono al progetto?

Si potrebbe rompere questo fuori in questo modo:

UIImage *image = [UIImage imageNamed:@"channel-guide-button.png"];
NSLog(@" image = %p", image);
UIBarButtonItem *toolbarChannelGuideButton = [[UIBarButtonItem alloc]
     initWithImage:image
     style:UIBarButtonItemStylePlain
     target:self
     action:@selector(action:)];

o semplicemente controllare il vostro progetto; -)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top