当我在一个完整的scren应用程序中关闭UIImagePicker时,状态栏会显示并将所有内容下移20像素



我在全屏应用程序中设置了一个UIImagePickerViewController(状态栏最初隐藏)。但是,当在模拟器上进行测试时,当modalViewController被解除时,状态栏会显示出来。怎么了?

感谢您的帮助!

Seb

请查看http://vickiwenderlich.s3-website-us-east-1.amazonaws.com/wp-content/uploads/2011/07/Basic_iOS_Stats_iPhone.jpg

状态栏高20像素。

iPhone屏幕分辨率为宽320,高480,当它是视网膜显示器时,分辨率为640乘960。如果你用低分辨率拍一张照片,你会发现它是720x960。在相机胶卷中,实际裁剪的图像。

你可以尝试调整图像的大小,这真的很不容易。

您可以尝试取消状态栏。

[[UIApplication sharedApplication] setStatusBarHidden:YES];

我已经发布了一个解决方案,这是关于UIKit中一个错误的建议。我发现了同样的情况,并发现了不良行为发生的关键时刻。

要复制该错误,首先需要使用presentModalViewController呈现UIImagePicker控制器,并且图像选择器的sourceType=UIImagePickerControllerSourceTypeSavedPhotsAlbum。这也有助于直观地看到错误,在显示UIImagePicker视图之前调整其框架,这样您就可以看到屏幕的顶部。

然后在对disseViewControllerAnimated:completion:或disseModalViewControlleranimated:的调用上放置一个断点,然后跨过它,观看状态栏立即绘制(假设您的UIImagePicker不是全屏应用程序中的全屏),并在之前和之后检查[[UIApplication sharedApplication]isStatusBarHidden]。

它会更改状态,但如果使用sourceType=,则不会更改。。摄像头或。。。PhotoLibrary。

所以我建议使用PhotoLibrary而不是。。。已保存的相册。

最新更新