如何摆脱UIBarButtonItem的标题标签在突出显示的状态下变暗

时间:2016-03-25 13:47:40

标签: ios uikit uinavigationbar uibarbuttonitem

我的问题是我无法在UIControlStateHighlighted上设置UIBarButtonItem标题标签的确切颜色。似乎UINavigationBar在突出显示的标题标签的顶部添加了一些黑色的“颜色叠加”,我不知道如何禁用它。

我有UIBarButtonItem,标题文本是通过外观配置的,我需要正常和突出显示状态的确切颜色,所以我用这种方式配置了UIBarButtonItem:

$('#maptable tbody').on('click', 'tr', function (e) {
    if(!$(e.target).is('button')){
       $(this).toggleClass('selected');
    }

    //...

});  

将UIBarButtonItem添加到UINavigationBar的代码:

UIBarButtonItem *barButtonItemAppearance = [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil];

NSDictionary * textAttributes = @{
    NSForegroundColorAttributeName : blueColor,
};
[barButtonItemAppearance setTitleTextAttributes:textAttributes forState:UIControlStateNormal];

NSDictionary * selectedTextAttributes = @{
    NSForegroundColorAttributeName : whiteColor
};
[barButtonItemAppearance setTitleTextAttributes:selectedTextAttributes forState:UIControlStateHighlighted];

请参阅随附的屏幕截图。

enter image description here enter image description here

我希望我突出显示的条形按钮只是白色。 我尝试将UIButton添加为UIBarButtonItem的customView属性的标题,并为正常和突出显示的状态配置UIButton。这很有效,我看不到突出显示的白色:

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *logoutButtonItem = [[UIBarButtonItem alloc] initWithTitle:title
                                                style:UIBarButtonItemStylePlain
                                               target:target
                                               action:action];
    [self.navigationItem setRightBarButtonItem:logoutButtonItem];         
}

它解决了我的问题,但也许有另一种方法,更好的解决方案,而不添加UIButton?

1 个答案:

答案 0 :(得分:0)

在添加 uibarbutton 之前,只需将其常规和突出显示的属性颜色设置为所需的颜色即可。