2016-05-08 6 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

UINTのインスタンスにtintColorを設定すると、そのUIButtonにのみローカルエフェクトが適用されます –

答えて

1

setTitleColor:forState:UIControlStateHighlightedまたはUIControlStateSelectedを使用して、ボタンを選択したときの色を指定すると便利です。

自分のイメージアセットが透明である場合は、UIImageRenderingModeAlwaysTemplateimageWithRenderingMode:を使用しようと、あなたの要件に特異的にtintColorを使用して色を設定したいかもしれません。

関連する問題