iOS 7 UINavigationBar背景图片隐藏标题视图

时间:2013-09-16 06:28:15

标签: iphone ios objective-c ipad ios7

我制作了iOS应用程序,我希望我的应用程序与iOS 7兼容

我面临的问题是,当我在iOS 7上运行我的应用时,UINavigationBar的背景图片会隐藏我的titleviewback button

screenshot here

-(void)viewDidLoad
{
    [super viewDidLoad];

    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"top.png"] forBarMetrics:UIBarMetricsDefault];

    self.title=@"Artist";
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];


}

同样,当我将UINavigationBar的背景图片设置为零时,它会显示titleviewback button

当我在iOS 7之前运行我的应用程序时,它可以正常运行。

请帮忙。 提前致谢。

4 个答案:

答案 0 :(得分:9)

在iOS 7.0上,tintColor对条形图的行为发生了变化,请查看下图:

enter image description here

你可以看到

tintColor:是导航栏中交互元素的颜色,包括按钮图像和标题。

barTintColorUINavigationBar的背景色。

对于您的问题:您可以执行以下操作:

navigationBar.tintColor = [UIColor whiteColor];
navigationBar.barTintColor = [UIColor colorWithRed:6.0/255.0 green:12.0/255.0 blue:19.0/255.0 alpha:1.0];

答案 1 :(得分:2)

默认字体颜色为黑色,因此您可能在黑色背景上绘制黑色字体。请尝试以下方法:

[[UINavigationBar appearance] setTitleTextAttributes:
                              [NSDictionary dictionaryWithObjectsAndKeys:
                              [UIColor whiteColor], NSForegroundColorAttributeName,nil]];

答案 2 :(得分:1)

检查视图属性检查器上的属性扩展边缘,这会将导航栏底部的边缘扩展到屏幕顶部,以使背景图像位于正确的位置

enter image description here

如果您想了解有关ios7中新内容的更多信息,请查看ios7的过渡指南 https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/index.html

答案 3 :(得分:0)

以下代码为我工作

在viewDidLoad

    self.navigationController.navigationBar.tintColor=[UIColor whiteColor];