3

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

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

截图在这里

-(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为 nil 它显示titleviewback button

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

请帮忙。 提前致谢。

4

4 回答 4

9

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

在此处输入图像描述

你可以看到

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

barTintColor是 的背景颜色UINavigationBar

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

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];
于 2013-09-16T07:26:30.397 回答
2

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

[[UINavigationBar appearance] setTitleTextAttributes:
                              [NSDictionary dictionaryWithObjectsAndKeys:
                              [UIColor whiteColor], NSForegroundColorAttributeName,nil]];
于 2013-09-25T11:55:56.083 回答
1

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

在此处输入图像描述

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

于 2013-09-16T06:35:43.187 回答
0

以下代码对我有用

在 viewDidLoad

    self.navigationController.navigationBar.tintColor=[UIColor whiteColor];
于 2013-10-03T13:42:28.430 回答