iOS7侧面菜单状态栏颜色过渡.与iOS7 Facebook App一样

前端之家收集整理的这篇文章主要介绍了iOS7侧面菜单状态栏颜色过渡.与iOS7 Facebook App一样前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
iOS7 Facebook App有一个右侧菜单,可以通过从右向左滑动或点击右上角按钮来显示.打开此菜单时,整个状态栏中的颜色从蓝色变为黑色,反之亦然.

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叠加层.

如果这对您有用,请告诉我!

猜你在找的iOS相关文章