Проблема, добавляя изображение на панель инструментов с помощью UIBARBUTTONITEM, отображение пустой белой коробки вместо изображения
-
26-09-2019 - |
Вопрос
Я не уверен, что я делаю не так. Имя файла правильное, стиль устанавливается на простое. Но я получаю банковскую белую коробку размером моего изображения. Я использую UinavigatingController.
Пожалуйста, помогите и спасибо вам заранее.
** FYI Я сортируй новый к объективному 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];
Решение
Причина, по которой она создала белую маску, было потому, что UIToolBar
Не позволяет цветным изображениям на нем по умолчанию. Путь к достижению этого создает UIImage
Затем назначить A. 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];
Другие советы
Начиная с iOS 7, вы можете использовать ниже:
UIImage *image = [[UIImage imageNamed:@"myImage.png"];
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(YOUR_METHOD:)];
Кнопка Channel-Guide.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:)];
или просто проверьте свой проект ;-)