这是正在设置的颜色,它接近我需要的颜色:
NSDictionary *barButtonItemTitleAttributesEnabled = @{
NSFontAttributeName:[UIFont MRFontLightOfSize:17],
NSForegroundColorAttributeName:[UIColor whiteColor]
};
NSDictionary *barButtonItemTitleAttributesDisabled = @{
NSFontAttributeName:[UIFont MRFontLightOfSize:17],
NSForegroundColorAttributeName:[UIColor colorWithWhite:1.0f alpha:0.25f]
};
[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonItemTitleAttributesEnabled forState:UIControlStateNormal];
[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonItemTitleAttributesDisabled forState:UIControlStateDisabled];
但我更愿意以某种方式将禁用的文本颜色设置为与选定状态相同的颜色,有没有办法通过外观代理调用来做到这一点?
也试过这个:
NSDictionary *barButtonItemDisabled = [[UIBarButtonItem appearance] titleTextAttributesForState:UIControlStateSelected];
[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonItemTitleAttributesEnabled forState:UIControlStateNormal];
[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonItemDisabled forState:UIControlStateDisabled];
最佳答案
通过删除上面的 TextTitleAttribute 代码并设置 toolBar tintColor 外观代理解决:
[[UIToolbar appearance] setTintColor:[UIColor whiteColor]];
这使得只需启用或禁用按钮即可将它们设置为正确的颜色。
关于ios - 通过外观代理设置 UIBarButtonItem 的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21054764/