iOS 7:显示弹出窗口后,色调颜色随机变化

时间:2014-06-12 16:07:21

标签: ios7 uinavigationbar uibarbuttonitem uisegmentedcontrol tintcolor

我遇到了一个让我疯狂的非常奇怪的问题。

问题在于,有时(它并不总是会发生),在显示弹出窗口后,条形按钮和任何UISegmentedControl变为红色,而它们应该是白色的(参见下面的图片)。

以下是我设置应用的色调颜色的代码(在app委托初始化方法中):

[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                                       [UIColor redColor], NSForegroundColorAttributeName,
                                                       shadow,NSShadowAttributeName,
                                                       [UIFont fontWithName:@"HelveticaNeue-Thin" size:18],
                                                       NSFontAttributeName,
                                                       nil]];

[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                      [UIColor redColor], NSForegroundColorAttributeName,
                                                      shadow,NSShadowAttributeName,
                                                      [UIFont fontWithName:@"HelveticaNeue-Thin" size:18],
                                                      NSFontAttributeName,
                                                      nil] forState:UIControlStateNormal];

if ([self.window respondsToSelector:@selector(setTintColor:)])
    self.window.tintColor = [UIColor redColor];

[[UINavigationBar appearance] setBarTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTintColor:[UIColor redColor]];

[[UITabBar appearance] setTintColor:[UIColor redColor]];

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor darkGrayColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];

知道为什么会这样吗?我认为如果我的代码出现问题,导航栏按钮和分段控件会在应用程序启动后显示为红色,而不是一段时间后。你们觉得怎么样?

由于

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

介意尝试将背景颜色设置为白色?似乎这已经改变了。如果这纠正了它,那么我们有一个起点

 [[UITabBar appearance] setBackgroundColor:[UIColor whiteColor];

尝试回复。

答案 1 :(得分:0)

在评论以下两行后,问题就消失了:

if ([self.window respondsToSelector:@selector(setTintColor:)])
self.window.tintColor = [UIColor redColor];