5

Je ne suis pas sûre de ce que je fais de mal. Le nom du fichier est correct, le style est défini sur uni. Mais je reçois une boîte blanche de la taille de mon image. Im en utilisant UINavigationController.Problème lors de l'ajout d'une image à la barre d'outils à l'aide de UIBarButtonItem, en affichant une boîte blanche vide au lieu de l'image.

Merci de nous aider et merci d'avance.

** FYI Je suis un peu nouveau à l'objectif c donc ne soyez pas trop dur avec moi. ;)

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]; 

Répondre

9

La raison pour laquelle il a été crée le masque blanc était parce que le doesnt UIToolBar permet des images en couleur sur par défaut. La manière d'accomplir cela est de créer un UIImage puis d'attribuer un UIButton à cette image. Puis créez un UIBarButton en utilisant initWithCustomView avec le UIButton comme vue personnalisée.

code:

 //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]; 
+0

merci! Cela a fonctionné parfaitement ... – manderson

+0

UIButtonTypeCustom a corrigé ceci pour moi. J'utilisais roundedrect un – coolcool1994

-1

Est-ce que channel-guide-button.png appartient au projet?

Vous pouvez briser ce comme ça:

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:)]; 

ou tout simplement vérifier votre projet ;-)

+0

Je suis arrivé mon projet et oui son là-dedans. J'ai également couru un NSLog il a montré un nombre de bas niveau. –

+0

image = 0x6b45340 est ce qu'il affiche dans la console –

+0

Eh bien. FWIW, je crée habituellement UIBarButtonItem avec initWithCustomView: et passe en UIButton avec l'image qui lui est associée. Je posterai un exemple de code demain. – westsider

1

A partir de iOS 7, vous pouvez utiliser ci-dessous:

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