我无法弄清楚如何让ios 7中的状态栏使用导航栏的颜色。我将UINavigationController
与SWRevealController
库一起用于滑动菜单导航。
这就是页面现在的样子:
我希望状态栏继承导航栏的灰色。我怎么能这样做?
答案 0 :(得分:2)
您可以修改项目的Info.plist并将“查看基于控制器的状态栏外观”设置为NO
在AppDelegate中你必须添加
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
到AppDelegates didFinishLaunchingWithOptions Method。
希望它对你有用。
答案 1 :(得分: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];
}
答案 2 :(得分:1)
创建自定义视图并将导航栏的颜色设置为该视图,将此视图放在状态栏的位置,并将状态栏的颜色更改为透明。 快乐的编码
答案 3 :(得分:0)
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];
}
答案 4 :(得分:0)
将导航栏的委托设置为当前视图控制器,并将导航栏附加到顶部。
class ViewController: UIViewController, UINavigationBarDelegate {
@IBOutlet weak var navigationBar: UINavigationBar!
override func viewDidLoad() {
navigationBar.delegate = self
}
func positionForBar(bar: UIBarPositioning) -> UIBarPosition {
return .TopAttached
}