iOS 7导航栏和TabBar Color表现得很奇怪

时间:2013-10-10 07:20:32

标签: iphone ios objective-c ios7

这就是我想要的。它会加载到我的一些视图控制器上。

大家好,

我正在努力使我所有viewControllers的色调都一样。有些人看起来比其他人暗得多。我想要的只是整个浅色......

This is what I want

有时我得到这个丑陋的深灰色......我不确定我做错了什么。我检查了.m文件,并没有设置色彩或任何东西......不确定为什么它在每个viewController上都不一致......

This is what I get

任何帮助都会很棒。谢谢!

3 个答案:

答案 0 :(得分:17)

iOS7导航栏中的

默认为translucent=YES所以只需改为NO,如下: -

self.navigationController.navigationBar.translucent=NO;

并设置Navigaitonbar颜色或其他属性自定义,如Bellow将此代码放入Appdelegate类didFinishLaunchingWithOptions并使用appearance进行全局应用: -

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {

    // Load resources for iOS 6.1 or earlier
     [[UINavigationBar appearance]setTintColor:NavigationColor];
} else {
     [[UINavigationBar appearance]setTintColor:[UIColor whiteColor]]; // it set color of bar button item text
     [[UINavigationBar appearance]setBarTintColor:[UIColor GreenColor]]; // it set color of navigation
     [[UINavigationBar appearance] setBarStyle:UIBarStyleDefault]; // it set Style of UINavigationBar
     [[UINavigationBar appearance]setTitleTextAttributes:@{UITextAttributeTextColor : [UIColor whiteColor]}]; //It set title color of Navigation Bar
    // Load resources for iOS 7 or later

}

对于tabBar也是如此,默认情况下translucent=YES更改为NO

[self.tabBarController.tabBar setTranslucent:NO];

答案 1 :(得分:3)

常见的错误是将视图控制器的view.backgroundColor设置为clearColor(以编程方式或通过故事板)。这使得视图实际上是黑色的(因为在清晰视图下面没有任何内容),所以位于该视图上方且translucent属性设置为YES的所有内容都将显示深灰色(黑色+默认iOS模糊)。

要解决此问题,请将translucent属性设置为NO(如Nitin Gohel所述),或将view.backgroundColor设置为白色,这是实际默认颜色。

希望这对某人有帮助!

答案 2 :(得分:0)

由于iOS 7.1存在一个错误,导致UITabBar不听全局色调。

请参阅此帖子:https://stackoverflow.com/a/22323786/1255674

您需要以编程方式设置色调。谢谢,我... ...