UIImagePickerController(sourceTypeCamera)未填充顶部/状态栏上的屏幕

时间:2012-06-14 12:38:54

标签: iphone uiimagepickercontroller uistatusbar

我从我的MainViewController调用UIImagePickerController(sourceTypeCamera)作为modalViewController。 但是,UIImagePickerController不会将屏幕填满顶部,如附带的图像所示。 UIImagePickerController strange behavior 知道是什么导致这种情况,以及如何解决?

7 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

您应该更改imagePickerController的frame属性。在初始化I.e。

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

答案 2 :(得分:0)

有些代码会有所帮助。

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

答案 3 :(得分:0)

在我的应用程序中,在一个位于navigationController里面的viewcontroller中 - 我这样做:

UIImagePickerController* imagePickerController_;

imagePickerController_.sourceType =  UIImagePickerControllerSourceTypeCamera; 

[self presentModalViewController:imagePickerController_ animated:YES];

@interface CustomViewController : UIViewController <UIImagePickerControllerDelegate>

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

答案 4 :(得分:0)

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

  

一个布尔值,指示视图是否应该低于状态栏。

我有几个问题,特别是在iOS 5上,状态栏中的视图重叠,特别是在以模态方式呈现时。我找到的最好的事情是将此值设置为YES,并在状态栏下方手动布局您的视图。仅供参考,状态栏的高度为20。

答案 5 :(得分:0)

致电

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

致电

之前
[self presentModalViewController:picker animated:YES]

答案 6 :(得分:-1)

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