在iOS 6应用程序的iOS 7兼容模式下,Navbar tintColor不受尊重?

时间:2013-09-19 19:44:24

标签: ios uinavigationbar ios7

我的应用程序的蓝色导航栏在iOS 7上突然变为黑/灰色。我的应用程序尚未升级到iOS 7但尚未使用Xcode 5进行重新编译。我期望在兼容模式下在iOS 7上看起来完全相同对于较旧编译的iOS 6,但我想我错了?

这是一个错误还是预期的行为?

为了您的信息,我没有使用UINavigationController。在指尖中只是一个简单的UIView,其中一个导航栏直接从Interface Builder中拖出。

2 个答案:

答案 0 :(得分:4)

我认为你想要的是:

UIColor *tintColor = [UIColor redColor];  
if ([navigationBar respondsToSelector:@selector(setBarTintColor:)])
{
    navigationBar.barTintColor = tintColor;
}
else
{
    navigationBar.tintColor = tintColor;
    navigationBar.translucent = NO;
}

在iOS7中,来自UINavigationBar的属性tintColor更改为仅对按钮(leftBarButtonItem / rightBarButtonItem)进行着色以声明用户可以单击它们。 “整理”整个栏的新方法是使用barTintColor(从iOS7开始提供)。

还有一个区别:

在iOS7之前,默认情况下UINavigationBar的半透明属性为NO,现在为YES

希望这会对你有所帮助。 :)

最佳, 的Sascha

答案 1 :(得分:-1)

在iOS 7上,导航栏的默认颜色为白色。蓝色是iOS 6中的默认导航颜色,因此可能只是将其设置为该操作系统版本的默认值。假设您的导航栏是默认的iOS 6蓝色。