ios 7状态栏不继承导航栏颜色
Posted
技术标签:
【中文标题】ios 7状态栏不继承导航栏颜色【英文标题】:ios 7 status bar not inheriting nav bar color 【发布时间】:2014-02-26 05:09:31 【问题描述】:我无法弄清楚如何让 ios 7 中的状态栏使用导航栏的颜色。我将UINavigationController
与SWRevealController
库一起用于滑动菜单导航。
这是页面现在的样子:
我希望状态栏继承导航栏的灰色。我该怎么做?
【问题讨论】:
签出这个。***.com/questions/17678881/… 是的,它设置为 ios7 尝试设置导航栏的颜色 navController.navigationBar.barTintColor = [UIColor grayColor]; 快速提问。你是在 XCode5 上编译的吗? 是的,肯定是在 xcode 5 中编译 【参考方案1】:您可以修改项目的 Info.plist 并将“查看基于控制器的状态栏外观”设置为 NO
在 AppDelegate 中你必须添加
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
到 AppDelegates didFinishLaunchingWithOptions 方法。
希望它对你有用。
【讨论】:
试过了,我还是看到状态栏显示为黑色 也访问此链接可能会解决您的问题doubleencore.com/2013/09/… 这最终解决了问题......在其他地方做错了什么。谢谢!!【参考方案2】:在 iOS 7 导航栏图像高度为 64 像素。您需要创建两张图片,一张用于 iOS 7 的导航栏,高度为 64 像素,另一张用于 iOS 6 或更低版本,高度为 44 像素
然后使用此代码
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)?YES:NO)
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"your 64 image"] forBarMetrics:UIBarMetricsDefault];
else
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"your 44 image"] forBarMetrics:UIBarMetricsDefault];
【讨论】:
【参考方案3】:制作一个自定义视图并将导航栏的颜色设置为该视图,将此视图放在状态栏的位置,并将状态栏的颜色更改为透明。 快乐编码
【讨论】:
【参考方案4】:if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)?YES:NO)
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"newImage.png"] forBarMetrics:UIBarMetricsDefault];
else
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"previousImage.png"] forBarMetrics:UIBarMetricsDefault];
【讨论】:
【参考方案5】:将导航栏的代理设置为当前视图控制器并将导航栏附加到顶部。
class ViewController: UIViewController, UINavigationBarDelegate
@IBOutlet weak var navigationBar: UINavigationBar!
override func viewDidLoad()
navigationBar.delegate = self
func positionForBar(bar: UIBarPositioning) -> UIBarPosition
return .TopAttached
【讨论】:
以上是关于ios 7状态栏不继承导航栏颜色的主要内容,如果未能解决你的问题,请参考以下文章