【问题标题】:UIImagePickerController (sourceTypeCamera) doesn't fill screen on top/status barUIImagePickerController(sourceTypeCamera)没有在顶部/状态栏上填满屏幕
【发布时间】:2012-06-14 12:38:53
【问题描述】:

我从 MainViewController 调用 UIImagePickerController (sourceTypeCamera) 作为 modalViewController。 但是,UIImagePickerController 并没有填满顶部的屏幕,如所附图像所示。 知道是什么原因造成的,以及如何解决?

【问题讨论】:

  • 这绝不是调用简单选择器的预期行为,请附上您如何呈现它的代码,以便我们更好地理解问题。
  • @natan:只有在顶部你有一个黑条还是在底部你也有一个?我想你在底部也有一个黑条,但是用工具栏隐藏了它。对吗?

标签: iphone uiimagepickercontroller uistatusbar


【解决方案1】:

经过多次尝试,我发现从[[[[UIApplication sharedApplication] delegate] window] rootViewController] 调用 presentViewController 解决了问题。

【讨论】:

  • 我在使用 [[[[[UIApplication sharedApplication] delegate] window] rootViewController] presentViewController:videoRecorder animated:YES completion:^{}]; 时仍然遇到同样的问题或 [self.window.rootViewController presentModalViewController:videoRecorder animated:YES];来自 AppDelegate 类
  • 你是在哪个 iOS 上试试这个?
【解决方案2】:

你应该改变 imagePickerController 的 frame 属性。初始化时,即

imagePickerController.view.frame.origin.y = 20;

【讨论】:

    【解决方案3】:

    一些代码会很有帮助。

    如果相关,请尝试设置 bounds 属性而不是 frame 属性。

    【讨论】:

      【解决方案4】:

      在我的应用程序中的 viewcontroller 中,它位于 navigationController 中 - 我正在这样做:

      UIImagePickerController* imagePickerController_;
      
      imagePickerController_.sourceType =  UIImagePickerControllerSourceTypeCamera; 
      
      [self presentModalViewController:imagePickerController_ animated:YES];
      

      @interface CustomViewController : UIViewController <UIImagePickerControllerDelegate>
      

      工作没有问题。如果您仍然有问题,那么您可以分享一些代码吗?你的应用程序有什么样的导航结构(tabbarcontroller、navigationcontroller、..?)?,你如何呈现 imagepickercontroller?

      【讨论】:

        【解决方案5】:

        UIViewController 上有一个布尔值可能对您有用:wantsFullScreenLayout。根据文档,这是:

        一个布尔值,指示视图是否应在状态栏下方。

        我遇到了几个问题,尤其是在 iOS 5 上,视图位于状态栏下方,尤其是在模态显示时。我发现最好的方法是将此值设置为YES,并在状态栏下方手动布置视图。仅供参考,状态栏的高度为 20。

        【讨论】:

          【解决方案6】:

          打电话

          [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
          

          打电话之前

          [self presentModalViewController:picker animated:YES]
          

          【讨论】:

            【解决方案7】:
            UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
            imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
            
            
            [self.view addSubview:imagePicker.view];
            
            [imagePicker viewWillAppear:YES];
            [imagePicker viewDidAppear:YES];
            
            [[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO];
            

            【讨论】:

              猜你喜欢
              • 2011-02-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-02-15
              相关资源
              最近更新 更多