删除高亮条按钮上的白色

时间:2016-05-08 19:00:58

标签: ios objective-c

在我的一个控制器中,我有条形按钮图像如下(点击时): 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;

问题是,第一种情况是在我的应用程序中的许多类中使用的抽象类中使用,如何修改它以使我的条形按钮在选中时看起来不是白色?

1 个答案:

答案 0 :(得分:1)

您可能希望setTitleColor:forState:UIControlStateHighlightedUIControlStateSelected一起使用,以便在选择按钮时指定颜色。

如果您的图片资源是透明的,您可能还想尝试使用 imageWithRenderingMode: UIImageRenderingModeAlwaysTemplate tintColor并根据您的要求使用printf %q配置颜色。