ios - 通过外观代理设置 UIBarButtonItem 的文本颜色

标签 ios iphone objective-c uikit

这是正在设置的颜色,它接近我需要的颜色:

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/

相关文章:

ios - 使用 iPhone 的相机和 swift 尽可能快地获取多个视频帧

ios - 从NSMutableDictionary构建NSMutableArray导致NSException

iphone - AVCaptureSession 指定捕获图像的分辨率和质量 obj-c iphone app

objective-c - 强制子类覆盖方法

objective-c - 从 UIPanGestureRecognizer 获取原始触摸位置

ios - 在 UITableView Segues 之前运行后台线程

ios - Titanium:向 listView 添加一个 ActivityIndi​​cator?

android - Unicode 符号无法在移动设备中正确显示

ios - 如何在 ios 中将四个图像从一个位置水平移动到另一个位置

ios - 在 IOS 中调用另一个屏幕时出现异常