2016-08-09 2 views
1

У меня возникла огромная проблема с моим UIBarButtonItem. Я бы хотел использовать пользовательское изображение в зависимости от состояния факела (вкл./Выкл.), но он переопределяет мою красивую желтую иконку синей «безвкусной» иконке.UIBarButtonItem переопределяет пользовательский цвет изображения - Objective-c

Любая идея или ссылка, которую я пропустил?

+1

разместить свой код здесь – user3182143

+2

попробуйте добавить ** UIImageRenderingModeAlwaysOriginal ** в ** ** imageWithRenderingMode – Gokul

+0

использования просто UIButton и установить изображение в button.and установить эту кнопку на панели навигации –

ответ

1
UIImage *myImage = [UIImage imageNamed:@"OnImage"]; 
myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStylePlain target:nil action:nil]; 

В зависимости от состояния вы можете изменить изображение.

+0

Это замечательно! Извините за отсутствие кода во время моего объяснения. Я бы старался быть лучшим пользователем и помогать другим пользователям в своих собственных навыках. Был мой первый раз, и мне понравилось –

+0

@BenoitThierry Если этот ответ решил вашу проблему, отметьте его как правильный, щелкнув значок tickmark. – NSNoob

2

Из документации Apple, см ниже метод, и он доступен с прошивкой 7.0 и более поздних версий:

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode 

Чтобы сделать совместимым с прошивкой ниже 7.0 Вы должны проверить во время выполнения этого метода доступен или нет.

UIImage *yourImage = [UIImage imageNamed:@"yourButifulImage"]; 
if ([yourImage respondsToSelector:@selector(isAvailabeImageWithRenderingMode:)]) 
{ 
    tabBarItem.image = [yourImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
} 
else 
{ 
    tabBarItem.image = yourImage; 
} 

Надеюсь, что это решит вашу проблему.

+0

извините @NSNoob по ошибке я возвращаю ваши исправления, спасибо за ваше редактирование. –

+0

Вы всегда можете щелкнуть откат в истории изменений. Если вы хотите восстановить это редактирование, вы можете сделать это прямо сейчас. Если нет, то это ваш пост, ваш выбор, я просто добавил форматирование URL. – NSNoob

Смежные вопросы