Ios 如何摆脱uibarbuttonite';的标题标签在高亮显示状态下变暗

Ios 如何摆脱uibarbuttonite';的标题标签在高亮显示状态下变暗,ios,uikit,uinavigationbar,uibarbuttonitem,Ios,Uikit,Uinavigationbar,Uibarbuttonitem,我的问题是我无法在UIControlStateHighlighted上设置UIBarButtonItem标题标签的确切颜色。看起来UINavigationBar在突出显示的标题标签顶部添加了一些深色的“颜色覆盖”,我不知道如何禁用它 我有通过外观配置的标题文本的UIBarButtonItem,我需要正常和高亮显示状态的确切颜色,因此我以这种方式配置UIBarButtonItems: UIBarButtonItem *barButtonItemAppearance = [UIBarButtonIt

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

我有通过外观配置的标题文本的UIBarButtonItem,我需要正常和高亮显示状态的确切颜色,因此我以这种方式配置UIBarButtonItems:

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];
将UIBarButtonim添加到UINavigationBar的代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *logoutButtonItem = [[UIBarButtonItem alloc] initWithTitle:title
                                                style:UIBarButtonItemStylePlain
                                               target:target
                                               action:action];
    [self.navigationItem setRightBarButtonItem:logoutButtonItem];         
}
请参阅附加的屏幕截图

我希望高亮显示的工具栏按钮为白色。 我尝试将UIButton作为标题添加到UIBarButtonItem的customView属性中,并将UIButton配置为正常和高亮显示状态。这很好用,我看不到高亮显示时只有清晰的白色:

UIButton *customButton = [UIButton buttonWithType:UIButtonTypeCustom];
[customButton setTitle:title forState:UIControlStateNormal];
[customButton setTitleColor:blueColor forState:UIControlStateNormal];
[customButton setTitleColor:whiteColor forState:UIControlStateHighlighted];
[customButton sizeToFit];
[customButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:customButton];

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

在添加您的uibarbutton之前,只需将其正常和高亮显示的属性颜色设置为所需的颜色

我刚刚添加了正常和高亮显示状态的titleTextAttributes。但我在sceen上看到的是,当项目高亮显示时,颜色会变暗。还有一个标题颜色属性,您也必须设置它