16

我们的设计师要求我为禁用的 UIBarButtonItems 的文本使用特定颜色。我用来实现这个的代码:

NSDictionary* textAttributes = [NSDictionary dictionaryWithObject: [UIColor blueColor]
                                                           forKey: UITextAttributeTextColor];

[[UIBarButtonItem appearance] setTitleTextAttributes: textAttributes
                                            forState: UIControlStateDisabled];

但它不会改变文本属性。

我已经尝试过使用正常状态的代码,尝试使用 setBackgroundImage 更改 UIControlStateDisabled 按钮的背景,并且所有 thouse 实验都运行良好。但是这个单一的组合:setTitleTextAttributes 和 UIControlStateDisabled 并没有做任何事情。

谷歌没有给我任何关于这个特定组合的相关答案。

有没有人知道改变禁用 UIBarButtonItem 的颜色的其他方法或使 setTitleTextAttributes 对禁用项目起作用的方法?

4

2 回答 2

29

您必须为控制状态 Normal 和 Disabled 设置它。

(2015-11-18 -- 从 iOS 9.1 开始,您仍然必须同时设置两者。)

于 2012-11-16T17:02:49.183 回答
0

使用 iOS 5.1 对我来说效果很好。也许这是一个 5.0 的错误。

于 2012-08-31T22:00:13.673 回答