iOS7中的导航栏颜色不同?

Posted

技术标签:

【中文标题】iOS7中的导航栏颜色不同?【英文标题】:Navigation bar different color in iOS7? 【发布时间】:2013-09-15 11:51:28 【问题描述】:

我正在创建一个 iPhone 应用,但我的导航栏在每个视图中都有不同的颜色?

我正在为 ios7 和 Xcode 5 开发。

我已尝试通过在 AppDelegate.m 文件中编写以下代码以编程方式使导航栏相同:

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];

我该怎么办?

【问题讨论】:

它是什么颜色,你期待什么颜色,视图的颜色是什么? 每个屏幕上的颜色大多相同。 【参考方案1】:

NavigationBar 样式为半透明浅色(默认)或半透明深色。 translucent 属性默认为 YES,设置为 NO 并使用导航栏的 barTintColor 属性设置导航栏背景颜色。

Objective-C

self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.translucent = NO;

斯威夫特 3

navigationController?.navigationBar.barTintColor = UIColor.white
navigationController?.navigationBar.isTranslucent = false

【讨论】:

【参考方案2】:

您需要设置 barTintColor 属性。

您可以使用 Tint (barTintColor) 字段为导航栏背景指定自定义色调颜色。默认背景色为白色。

如果您想要纯色,还可以将顶部栏的属性设置为不透明而不是半透明 来自 iOS7 文档:https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/UINavigationBar.html#//apple_ref/doc/uid/TP40012857-UINavigationBar-SW1

【讨论】:

我也试过了,颜色变了,但是不一致???它在每个视图中具有不同深浅的所选颜色? :S 抱歉,这是 iOS7 风格。我不认为有没有阴影的选项,或者您应该在导航栏下方制作一个内部视图,以便导航栏后面没有任何内容。 另一种选择可能是取消选中视图上的下顶栏属性(延伸边缘)。 但是颜色明显不同?有些是褐色的,有些是灰色的,有些是全黑的,而且每个视图的背景应该完全相同? 尝试设置以下属性“translucent = NO”。这将停止从底层视图继承的颜色阴影。

以上是关于iOS7中的导航栏颜色不同?的主要内容,如果未能解决你的问题,请参考以下文章

iOS7导航栏文字颜色

在iOS7半透明导航栏中获取正确的颜色

如何匹配导航栏与状态栏ios7

模态视图导航栏的位置 - iOS7

更改导航栏ios6和ios7的颜色

自定义iOS7导航栏背景,标题和返回按钮文字颜色