我制作了iOS应用程序,我希望我的应用程序与iOS 7兼容
我面临的问题是,当我在iOS 7上运行我的应用时,UINavigationBar
的背景图片会隐藏我的titleview
和back 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
的背景图片设置为零时,它会显示titleview
和back button
当我在iOS 7之前运行我的应用程序时,它可以正常运行。
请帮忙。 提前致谢。
答案 0 :(得分:9)
在iOS 7.0上,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];
答案 1 :(得分:2)
默认字体颜色为黑色,因此您可能在黑色背景上绘制黑色字体。请尝试以下方法:
[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], NSForegroundColorAttributeName,nil]];
答案 2 :(得分:1)
检查视图属性检查器上的属性扩展边缘,这会将导航栏底部的边缘扩展到屏幕顶部,以使背景图像位于正确的位置
如果您想了解有关ios7中新内容的更多信息,请查看ios7的过渡指南 https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/index.html
答案 3 :(得分:0)
以下代码为我工作
在viewDidLoad
中 self.navigationController.navigationBar.tintColor=[UIColor whiteColor];