【问题标题】:Navbar tintColor not respected on iOS 7 compatibility mode for iOS 6 app?导航栏 tintColor 在 iOS 6 应用程序的 iOS 7 兼容模式下不受尊重?
【发布时间】:2013-09-19 19:44:24
【问题描述】:

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

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

为了您的信息,我没有使用UINavigationController。只是一个简单的UIView 在笔尖中,导航栏直接从界面生成器中拖出来。

【问题讨论】:

    标签: ios uinavigationbar ios7


    【解决方案1】:

    我想你想要的是这样的:

    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

    希望这对您有所帮助。 :)

    最好, 萨沙

    【讨论】:

    • 我知道它不支持在 Xcode 5 下使用 iOS 7.0 SDK 编译的较新应用程序,我需要检查一个条件,但我的仍然是在 iOS 6.1 SDK 下编译的。我已经好几个月没碰它了。
    • Aaaah allaire,我想我知道你的问题,一个月前我也遇到过这个问题。您有 iOS6 样式,但条的颜色错误。我在 WWDC 期间也遇到了这个问题。我想他们用 iOS7 beta 4 改变了它。你可以检查一下,如果你在你的测试设备上安装了最新的 iOS7?
    • 没错,栏的颜色是深灰色,但按钮仍然是深蓝色。
    【解决方案2】:

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

    【讨论】:

    • 不,它不是默认的蓝色,我使用了 tintColor 属性。
    猜你喜欢
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多