我的应用程序的蓝色导航栏在 iOS 7 上突然变为黑色/灰色。我的应用程序尚未升级到 iOS 7,也没有使用 Xcode 5 重新编译。我希望在 iOS 7 上看起来完全一样,与旧编译的兼容模式iOS 6,但我想我错了?
这是一个错误还是预期的行为?
供您参考,我没有使用UINavigationController
. 只是一个简单UIView
的笔尖,带有直接从界面生成器中拖动的导航栏。
我的应用程序的蓝色导航栏在 iOS 7 上突然变为黑色/灰色。我的应用程序尚未升级到 iOS 7,也没有使用 Xcode 5 重新编译。我希望在 iOS 7 上看起来完全一样,与旧编译的兼容模式iOS 6,但我想我错了?
这是一个错误还是预期的行为?
供您参考,我没有使用UINavigationController
. 只是一个简单UIView
的笔尖,带有直接从界面生成器中拖动的导航栏。
我想你想要的是这样的:
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 的 translucent 属性是NO
默认的,现在是YES
.
希望这对您有所帮助。:)
最好的,萨沙
在 iOS 7 上,导航栏的默认颜色是白色。蓝色是 iOS 6 中的默认导航颜色,因此可能只是将其设置为该操作系统版本的默认值。假设您的导航栏是默认的 iOS 6 蓝色。