iPhone UIImagePickerController推送内容

时间:2010-10-09 19:40:11

标签: iphone uiimagepickercontroller

我正在开发一款非常简单的iPhone应用程序。我有一个UIWebView,底部有一个UIToolBar,上面有一个按钮。我已经通过代码构建了它,虽然我确实创建了一个空的NIB,因为我希望最终让Facebook Connect与它一起工作并且在我过去没有使用这个空的NIB进行设置时遇到了问题...

我添加了另一个按钮,它只是位于页面中间(为了我构建时的测试目的)调用UIActionSheet。当您在UIActionSheet上选择一个按钮时,我会在所有内容之上弹出UIImagePickerController,以便从我的相机胶卷中选择一个图像。

问题是,当我的UIImagePickerController关闭时(通过选择图像或按下取消按钮),我页面上的所有内容都被按下20像素...

虽然我可以将所有元素的帧向上移动20个像素,但感觉“hacky”,虽然我喜欢黑客,但我宁愿弄清楚为什么会这样。< / p>

有没有人遇到过这个?你是怎么解决的?

谢谢,

- d

3 个答案:

答案 0 :(得分:0)

您的应用是全屏应用吗? UIImagePickerController使状态栏出现。使取消UIImagePickerController的方法也隐藏状态栏。

答案 1 :(得分:0)

我在使用MFMailComposeViewController时遇到了类似的问题。当我解雇它时,它会导致屏幕向下移动20个像素。

我猜它与IB有关,因为我最近表现得很好。它认为在我的视图中有一个状态栏,即使没有指定。在找到合适的解决方案之前,我正在使用CGRectMake来“修复”问题。

我将以下代码放在didFinishWithResult方法的底部。这是我解雇MFMailComposeViewController时调用的方法。当你解雇UIImagePickerController时,你可能会放置相同的代码。

self.view.frame = CGRectMake(0,0,320,480);

如果你发现正确的解决方案,我很高兴知道它:)

答案 2 :(得分:0)

在viewWillAppear中将navigationController.view.frame设置为CGRectMake(0,0,320,460)。如果您支持横向,那么如果您处于横向模式,则需要执行CGRectMake(0,0,480,300)。

祝你好运!