2009-11-18 106 views
3

我一直在工作的UIImagePickerController广泛漂亮过去几个月,特别是在OS3.1和更新的新功能叠加在顶部的摄像机视图的视图中显示的UIImagePickerController。这工作得很好。另一个UIView的

不过,我目前工作的一个项目,我希望能够在现有视图中显示的UIImagePickerController的摄像机视图。基本上,与我目前所做的完全相反。

一个例子是与导航组件(认为具有梯度的顶部和底部水平条),并且在轻击这些杆中的一个的按钮视图控制器,然后内容区域显示相机视图。快门动画应该会出现,顶部和底部的导航栏始终保持在顶部。

我已经成功加入的UIImagePickerController到窗口视图,以及模态呈现,但还没有任何运气将其添加为一个子视图。

例如:

[window addSubview:camera.view]; 
[self presentModalViewController:camera animated:YES]; 
+0

从DOCO:“重要:UIImagePickerController类仅支持肖像模式此类旨在被原样使用,并没有。支持子类,这个类的视图层次是私有的,不能修改“这很简单。 – Fattie 2014-02-26 15:07:41

+0

这只是** presentViewController **,不要使用模态。所以,[self presentViewController:ipc animated:YES completion:NULL]; – Fattie 2014-02-26 15:09:13

回答

0

我不认为API提供给UIImagePickerController的实际视图直接访问。该类实际上是UINavigationController的一个子类,所以我不认为它本身具有实际的视图,而是管理其子控制器及其视图的调用。

当你调用UIImagePickerController模态,其不加它控制的子视图窗口(或任何其他视图)的意见。这是一种模态观点。它将视图呈现在视图层次的“侧面”。

即使你能破解这一起,我认为苹果会拒绝它不作为API的一部分,对违反HIG。

+1

UIImagePickerController是具有视图属性的UIViewController的子类,所以应该很好地使用该视图属性作为另一个UIView的子视图。 – jjxtra 2013-01-08 19:51:49

2

调用viewWillAppear:在将视图添加到视图后,图像选取器控制器上为YES。跳过模态视图控制器业务。

+0

刚试过这个,相机视图显示,但镜头没有打开。镜头关闭时,它只是停留在图形上。不知道这是否仍然是一个相关的问题。 这是我做的: [self.view addSubview:camera.view]; [camera viewWillAppear:YES]; – u2elan 2009-11-19 20:29:31

+0

调用viewDidAppear以及 – Tony 2011-04-05 14:51:33

6

所有你需要做的就是调用viewWillAppear和viewDidAppear。

下面是一个例子,其中_pickerController是的UIImagePickerController的一个实例:

[self.view addSubview:_pickerController.view]; 
[_pickerController viewWillAppear:YES]; 
[_pickerController viewDidAppear:YES]; 
+0

这使我可以将相机显示为任何视图的子视图(镜头打开并且一切正常)。然而,时钟,电池指示器等顶部的酒吧消失并变成白色条。我猜UIImagePickerController并不打算在显示顶部栏时使用。 – Jano 2011-03-04 12:10:30

+0

不确定。我总是删除状态栏。 – jj0b 2011-04-06 15:39:34

+0

Thanks.I刚添加[self.pickerForProfilePicture.view removeFromSuperview]; – YaBoiSandeep 2014-02-17 09:36:38

相关问题