状态栏隐藏的问题
2016-03-24 08:41
357 查看
一般来说,在info.plist中添加
View controller-based status barappearance
并且把值设定为NO,就可以在程序中自由控制状态栏的隐藏和显示了。
遇到的问题无非是状态栏颜色和界面上的颜色配不上,那么改一下setStatusBarStyle就可以了。
但是有一种情况,就是打开相册或者相机时,使用了UIImagePickerController之后,状态栏就会显示出来,即使你把它隐藏了,它还是透明地显示出来,只不过不占地方,试过各种方法都无法隐藏掉,prefersStatusBarHidden也无济于事。
最后用以下办法解决了,继承一个UIImagePickerController子类,在子类的各个方法中控制状态栏的显示与隐藏。貌似这是ios7的一个bug。
@interface IFImagePickerControllerEx :UIImagePickerController
- (void)viewDidDisappear:(BOOL)animated;
- (void)viewDidAppear:(BOOL)animated;
- (void)viewWillDisappear:(BOOL)animated;
@end
@implementation IFImagePickerControllerEx
- (void)viewDidAppear:(BOOL)animated
{
[superviewDidAppear:animated];
[[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleDefault];
}
- (void)viewWillDisappear:(BOOL)animated
{
[superviewWillDisappear:animated];
[[UIApplicationsharedApplication] setStatusBarHidden:YES withAnimation:NO];
}
- (void)viewDidDisappear:(BOOL)animated
{
[superviewDidDisappear:animated];
[[UIApplicationsharedApplication] setStatusBarHidden:YES withAnimation:NO];
}
View controller-based status barappearance
并且把值设定为NO,就可以在程序中自由控制状态栏的隐藏和显示了。
遇到的问题无非是状态栏颜色和界面上的颜色配不上,那么改一下setStatusBarStyle就可以了。
但是有一种情况,就是打开相册或者相机时,使用了UIImagePickerController之后,状态栏就会显示出来,即使你把它隐藏了,它还是透明地显示出来,只不过不占地方,试过各种方法都无法隐藏掉,prefersStatusBarHidden也无济于事。
最后用以下办法解决了,继承一个UIImagePickerController子类,在子类的各个方法中控制状态栏的显示与隐藏。貌似这是ios7的一个bug。
@interface IFImagePickerControllerEx :UIImagePickerController
- (void)viewDidDisappear:(BOOL)animated;
- (void)viewDidAppear:(BOOL)animated;
- (void)viewWillDisappear:(BOOL)animated;
@end
@implementation IFImagePickerControllerEx
- (void)viewDidAppear:(BOOL)animated
{
[superviewDidAppear:animated];
[[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleDefault];
}
- (void)viewWillDisappear:(BOOL)animated
{
[superviewWillDisappear:animated];
[[UIApplicationsharedApplication] setStatusBarHidden:YES withAnimation:NO];
}
- (void)viewDidDisappear:(BOOL)animated
{
[superviewDidDisappear:animated];
[[UIApplicationsharedApplication] setStatusBarHidden:YES withAnimation:NO];
}
相关文章推荐
- Android相机
- 第四周项目一求最大公约数
- 年龄几何
- Unity3D问题之EnhanceScollView选择角色3D循环滚动效果实现
- 第四周上机实践项目 项目4--程序分析(3)
- vSphere 虚拟化基础概念讲解与环境构建-吴秋林-专题视频课程
- 作业二 项目三
- 理解函数的默认参数
- 第四周项目4-1
- c++第二次作业
- 划分树 模板
- 第四周,项目4,程序分析(2)
- 第四周项目3——(1)猜数字游戏
- 第三周项目四穷举法解决组合问题
- 第四周上机实践项目 项目4--程序分析(2)
- js 中声明变量 “提前”
- 详细解释强力的图片加载框架 Glide的配置(顺便补充下CollapsingToolbarLayout的一些功能)
- 本月有几天
- 第二周练习 月份
- Linux下修改系统时间并写入BIOS