我的问题是我无法在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];
请参阅随附的屏幕截图。
我希望我突出显示的条形按钮只是白色。 我尝试将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?
答案 0 :(得分:0)
在添加 uibarbutton 之前,只需将其常规和突出显示的属性颜色设置为所需的颜色即可。