This image shows both status bar side-to-side
对于带有侧边菜单的iOS应用程序来说,这看起来非常好.
有关如何实现这一目标的任何想法或方法?
我目前正在使用JASidePanels.
谢谢!
解决方法
>高度为64点的背景图像将填充两者
UINavigationBar和UIStatusBar.
>高度为44点的背景图像将填充UINavigationBar并离开
UIStatusBar黑色.
>您可以将子视图添加到当前navigationController视图的顶部,它将位于UIStatusBar下方.
因此,首先,您需要使用所需的UINavigationBar外观创建两个图像:
640x128px图像,用于覆盖导航栏和状态栏(ImageA)
并且640x88px图像覆盖导航栏但状态栏保持黑色(ImageB).
在应用程序:didFinishLaunchingWithOptions:方法中,使用ImageA设置UINavigationBar的背景[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@“ImageA.png”] forBarMetrics:UIBarMetricsDefault];
当侧面菜单开始打开时,您将需要切换UINavigationBar,因此它使用ImageB并创建一个视图,您将在UIStatusBar下添加该视图.以下是一些示例代码:
// Add a property for your "temporary status bar" view @property (nonatomic,strong) UIView *temporaryStatusBar;
// Create a temporary status bar overlay self.temporaryStatusBar = [[UIView alloc] initWithFrame:[[UIApplication sharedApplication] statusBarFrame]]; self.temporaryStatusBar.backgroundColor = [UIColor yourColor]; [self.navigationController.view addSubview:self.temporaryStatusBar]; // Update both the current display of the navigationBar and the default appearance values [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"imageB.png"] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"imageB.png"] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setNeedsDisplay];
当侧面菜单打开动画时,或者当用户平移菜单时,您需要做的就是调整UIStatusBar叠加层的alpha级别.当侧面菜单完全打开时,UINavigationBar应该将ImageB作为其背景图像,并且UIStatusBar叠加层的alpha值为0.当侧边菜单关闭时,您将要用ImageA替换UINavigationBar背景并删除UIStatusBar叠加层.
如果这对您有用,请告诉我!