5

在 io7 中,视图顶部的状态栏是一场噩梦。幸运的是,我设法让它工作,所以它将被放置在视图上方。我是这样做的:

- (void)viewDidLoad
{
    [super viewDidLoad];
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
         self.view.backgroundColor=[UIColor colorWithRed:(152/255.0) green:(204/255.0) blue:(51/255.0) alpha:1] ;
        CGRect frame = self.topNav.frame; frame.origin.y = 20;
        self.topNav.frame = frame;
    }
....
}

现在我的状态栏在我的导航栏上方。

但是调用UIImagePickerController的时候就不一样了。上面的代码没有任何作用。我试图这样做:

- (void)showImagePickerForSourceType:(UIImagePickerControllerSourceType)sourceType
{


    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];

 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {

            CGRect frame = self.imagePickerController.frame; frame.origin.y = 20;
           self.imagePickerController.frame = frame;
        }

    imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
    imagePickerController.sourceType = sourceType;
    imagePickerController.delegate = self;
    self.imagePickerController = imagePickerController;
    self.imagePickerController.allowsEditing=YES;
....
}

结果是:

在此处输入图像描述

相机上方的状态栏(显示相机拍照时)是否有机会控制?

谢谢你。

4

5 回答 5

16

我有同样的问题...并解决我的问题...在 .plist 文件中添加密钥

'View controller-based status bar appearance' and set to NO.

并添加 appDelegate。

[application setStatusBarHidden:NO]; 
[application setStatusBarStyle:UIStatusBarStyleDefault]; 

注意:- **setStatusBarStyle**根据您的应用背景颜色更改

于 2013-09-27T09:40:13.373 回答
0

设置基于视图控制器的状态栏外观'并设置为 NO。

并添加 appDelegate。

[应用程序设置状态栏隐藏:否];[应用程序 setStatusBarStyle:UIStatusBarStyleDefault];

于 2014-01-27T16:57:53.823 回答
0

试试这个

- (void)navigationController:(UINavigationController *)navigationController     willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}
于 2014-03-11T14:06:59.483 回答
0

在 App 的 Info.plist 文件中添加:

"View controller-based status bar appearance" == NO

在 appdelegae.m 文件中,添加以下代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [application setStatusBarHidden:NO];
  [application setStatusBarStyle:UIStatusBarStyleBlackTranslucent];

}
于 2014-07-07T16:25:50.570 回答
-1

这是 iOS 7.0 中的错误,在 iOS 7.1 中已修复

于 2014-01-21T14:56:06.457 回答