当我在一个完整的应用程序中解雇UIImagePicker时,状态栏会显示并将所有内容向下移动20px

时间:2012-01-21 00:17:39

标签: xcode4.2 statusbar ios5

我在全屏应用中设置了UIImagePickerViewController(状态栏最初隐藏)。但是当在模拟器上测试它时,状态栏会显示modalViewController被解雇的时间。有什么问题?

任何帮助表示赞赏!

的Seb

2 个答案:

答案 0 :(得分:1)

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

上的图片

状态栏高20像素。

iPhone屏幕分辨率为宽度= 320和高度480,当它是视网膜显示时,它是640 x 960.如果以低分辨率拍摄照片,您将看到它是720x960。在相机胶卷中,您实际裁剪的图像。

您可以尝试调整图像的大小,这实在不容易。

您可以尝试关闭状态栏。

[[UIApplication sharedApplication] setStatusBarHidden:YES];

答案 1 :(得分:0)

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

要复制错误,首先需要使用presentModalViewController呈现UIImagePicker控制器,并且图像选择器具有sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum。 它还有助于在视觉上看到错误,在呈现之前调整UIImagePicker视图的框架,以便您可以看到屏幕顶部。

然后在你的dismissViewControllerAnimated调用断点:完成:或者dismissModalViewControllerAnimated:并跳过它,观察状态栏立即被绘制(假设你的UIImagePicker不是全屏,在你的全屏应用程序中)并检查[[UIApplication] sharedApplication] isStatusBarHidden]之前和之后。

它会改变状态,但如果使用sourceType = ..Camera或... PhotoLibrary,则不会改变。

所以我建议使用PhotoLibrary而不是... SavedPhotosAlbum。