【问题标题】:UIImagePickerController in iOS 7 status bariOS 7 状态栏中的 UIImagePickerController
【发布时间】:2013-09-27 08:22:01
【问题描述】:

在 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;
....
}

结果是:

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

谢谢。

【问题讨论】:

  • 试试这个,[imagePickerController.view setFrame:CGRectMake(0, 20, 320, itsCurrentHeight - 20)];

标签: uiimagepickercontroller ios7 uistatusbar


【解决方案1】:

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

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

并添加 appDelegate。

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

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

【讨论】:

  • 新的状态栏让我头疼。我不得不self.view.backgroundColor=[UIColor colorWithRed:(152/255.0) green:(204/255.0) blue:(51/255.0) alpha :1];对于每个视图,它都会为状态栏着色。
  • 我按照上面所说的尝试过,但它不起作用。是否还有其他需要修改的地方
  • stackoverflow.com/a/18953517/1271057 这个答案帮助我隐藏了与相机胶卷重叠的状态
  • 你想隐藏状态栏
  • Vamsi575g,有什么问题?我可以发布代码,但首先告诉我问题出在哪里。我不必隐藏状态栏,只需将 pickerController 拉低 20 点。 [imagePickerController.view setFrame:CGRectMake(0, 20, 320, self.imagePickerController.view.frame.size.height - 20)];
【解决方案2】:

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

并添加 appDelegate。

[应用程序 setStatusBarHidden:NO]; [应用程序 setStatusBarStyle:UIStatusBarStyleDefault];

【讨论】:

    【解决方案3】:

    试试这个

    - (void)navigationController:(UINavigationController *)navigationController     willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
    {
        [[UIApplication sharedApplication] setStatusBarHidden:YES];
    }
    

    【讨论】:

    • 你可以为你的答案添加解释吗?
    【解决方案4】:

    在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];
    
    }
    

    【讨论】:

      【解决方案5】:

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

      【讨论】:

      • 我在 7.1 中仍然看到这个
      猜你喜欢
      • 1970-01-01
      • 2014-09-12
      • 2015-04-21
      • 2013-09-22
      • 2015-01-22
      • 2014-11-13
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      相关资源
      最近更新 更多