Xcode 5中的iOS 6导航栏颜色

时间:2013-09-27 21:20:53

标签: ios xcode ios6 storyboard ios7

当我更新到Xcode 5时,我花了几个月的时间为iOS 6开发应用程序。当我决定在iOS 6.1上再次运行应用程序时,我更新了应用程序以适应iOS 7风格。我发现我之前的黑色导航栏变白了。

我将我的故事板换成“iOS 6.1及更早版本”,并发现导航栏的颜色为白色,即使它在模拟指标中设置为“不透明黑色导航栏”。

有关如何解决此问题的任何想法?我已经尝试过手动将子视图顶部栏设置为“不透明的黑色导航栏”。这会更改导航栏的颜色,使子项在故事板上显示为黑色,但在模拟器上运行时对应用程序没有影响。

4 个答案:

答案 0 :(得分:15)

看起来我需要做的是检查设备是否运行的版本低于iOS 7,然后设置

[[[self navigationController] navigationBar] setTintColor:[UIColor blackColor]];

答案 1 :(得分:13)

为了设置导航栏的颜色,我执行了以下操作:

if([self.navigationController.navigationBar respondsToSelector:@selector(barTintColor)])
{
    // iOS7
    self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:236.0/255.0 green:139.0/255.0 blue:23.0/255.0 alpha:1.0];
}
else
{
    // older
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:236.0/255.0 green:139.0/255.0 blue:23.0/255.0 alpha:1.0];
}

希望有人会觉得有用......

答案 2 :(得分:0)

UIBarStyleBlackOpaque已被弃用。

改为使用UIBarStyleBlack

或者在iOS 7中,您可以将barTintColor属性设置为黑色。

答案 3 :(得分:0)

for: - iOS 7

// set tint color in io s6
[[[self navigationController] navigationBar] setBarTintColor:[UIColor blackColor]];

for: - iOS 7

// set translucent property to NO in iOS 7 
self.navigationController.navigationBar.translucent=NO;
// set Bar tint color 
[[[self navigationController] navigationBar] setTintColor:[UIColor blackColor]];
// But I would recommend Use Images instead of color.

for iOS 6: - 320 X 44尺寸的图像
对于iOS 7: - 320 X 64大小的图像