Проблема с добавлением изображения на панель инструментов с помощью UIBarButtonItem, отображая пустое белое поле вместо изображения - PullRequest
5 голосов
/ 27 октября 2010

Я не уверен, что я делаю неправильно.Имя файла правильное, стиль установлен как обычный.Но я получаю белую коробку размером с мой имидж.Я использую UINavigationController.

Пожалуйста, помогите и спасибо заранее.

** К вашему сведению, я как бы плохо знаком с задачей c, так что не будьте слишком строги ко мне.;)

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

Ответы [ 3 ]

9 голосов
/ 27 октября 2010

Причиной создания белой маски было то, что UIToolBar по умолчанию не допускает цветных изображений.Способ сделать это - создать UIImage, а затем присвоить UIButton этому изображению.Затем создайте UIBarButton, используя initWithCustomView с UIButton в качестве пользовательского представления.

Код:

     //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];
1 голос
/ 12 мая 2015

Начиная с iOS 7 вы можете использовать ниже:

 UIImage *image = [[UIImage imageNamed:@"myImage.png"];
 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
 UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(YOUR_METHOD:)];
0 голосов
/ 27 октября 2010

Является ли channel-guide-button.png проектом?

Вы можете разбить это так:

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

или просто проверьте свой проект; -)

...