我在 iOS7 中遇到了一个非常奇怪的色调问题。
当我第一次加载时遇到问题的 ViewController 时,所有色调都是浅灰色,就好像一切都处于非活动状态或位于使屏幕变暗的 UIAlertView 后面。这些按钮仍然处于活动状态并且工作正常,但它们都是灰色的。 (我将色调颜色设置为橙色,稍后会详细介绍)。
这是奇怪的部分。如果我呈现,然后立即关闭另一个 ViewController,所有橙色色调都会出现,并且一切都会按预期工作。这是我能够让色调出现的唯一方法——其他似乎都不起作用。
我在整个应用程序中使用相同的基本代码模式,这个问题实际上只影响一个 ViewController。这个特定的 ViewController 被呈现UIModalPresentationFullScreen
, and UIModalTransitionStyleCoverVertical
,如果这些很重要的话。
这是我设置着色的方法:
首先,我在界面构建器中的每个视图控制器上设置了色调颜色,这些设置在工作 VC 和有问题的 VC 中都是相同的。
接下来,我在我的应用程序代理中全局设置了色调颜色,如下所示:
[_window setTintColor:[UIColor orangeColor]];
上述两个方法适用于我的大多数 ViewController,但由于某种原因并非全部适用。对于那些不起作用的部分,我一直在使用一些不同的技术来使色调发挥作用。例如:
self.view.tintColor = [UIColor orangeColor];
or
[_myUIBarButtonItem setTitleTextAttributes:
[NSDictionary dictionaryWithObject:[UIColor orangeColor]
forKey:NSForegroundColorAttributeName]
forState:UIControlStateNormal];
或强制更新tintColor:
[_myButtonOutlet setTitleColor:_cancelButtonOutlet.tintColor
forState:UIControlStateNormal];
有任何想法吗?