2016-05-08 3 views
0

В одном из моего контроллера я быть_наст бар изображение кнопки, как следует (при постукивании): enter image description hereУдалить белый цвет на кнопке подсветки бара

В моем другом контроллере он выглядит следующим образом:

enter image description here

Он всегда использует одинаковый образ из активов. Мне нужно, чтобы моя кнопка всегда была вторым вариантом.

кнопка

Первый (неправильно) объявлен следующим образом:

bbiRight = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:riVM.itemPictureName] style:UIBarButtonItemStylePlain target:nil action:nil]; 

       [RACObserve(((id<CDRRightNavItemProtocol>)self.viewModel), itemPictureName) subscribeNext:^(NSString * x) { 
        [bbiRight setImage:[UIImage imageNamed:x]]; 
       }]; 

Второй (правильный) является:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btn setImage: [UIImage imageNamed: @"m_starnotactive"] forState:UIControlStateNormal]; 
    [btn setImage: [UIImage imageNamed: @"m_staractive"] forState:UIControlStateSelected]; 
    btn.frame = (CGRect){88,11, 22,22}; 
    btn.rac_command = self.viewModel.cmdSaveToFavorites; 
    RAC(btn, selected) = RACObserve(self.viewModel, inFavorites); 

    UIBarButtonItem *bbiFav = [[UIBarButtonItem alloc] initWithCustomView:btn]; 
    self.navigationItem.rightBarButtonItem = bbiFav; 

Проблема в том, первый случай используется в абстрактном классе, который используется во многих классах в мое приложение, как изменить его, чтобы моя кнопка на панели не выглядела белой, когда она была выбрана?

+0

Вы пытались установить UIButton tintColor на свой цвет? –

+0

@ АлексейАбдулин, если я это сделаю, я установлю этот цвет для всех экземпляров представления таблиц с этим контроллером. –

+1

Если вы установили tintColor, например, UIButton, он будет иметь локальный эффект только на этом UIButton –

ответ

1

Возможно, вы захотите использовать setTitleColor:forState: с UIControlStateHighlighted или UIControlStateSelected, чтобы указать цвет при выборе кнопки.

Если ваш ресурс изображения является прозрачным, вы также можете попробовать использовать imageWithRenderingMode: с UIImageRenderingModeAlwaysTemplate и настроить цвет, используя tintColor специально для ваших требований.

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