Iphone UIImagePickerController摄像头在浏览多个视图并打开摄像头后取消不工作?
我在应用程序中有15到20个视图。一个是相机功能。我的视图设置为Iphone UIImagePickerController摄像头在浏览多个视图并打开摄像头后取消不工作?,iphone,ios,camera,uiimagepickercontroller,Iphone,Ios,Camera,Uiimagepickercontroller,我在应用程序中有15到20个视图。一个是相机功能。我的视图设置为UIImagePickerController以显示摄像头。我的问题是,当我在应用程序启动后直接打开相机时,一切正常。我的意思是取消,默认相机功能的拍摄功能。但假设,如果我浏览除照相机以外的所有内容,如地图、网络视图等,并且至少打开照相机时,取消按钮不起作用(捕获按钮在所有情况下都起作用)。在我捕获后,诸如“重新拍摄”、“使用”等控件都会成功显示,但这些按钮也无法访问 注:以上问题在发射后直接打开相机时不会发生 这些就是我试图解决这
UIImagePickerController
以显示摄像头。我的问题是,当我在应用程序启动后直接打开相机时,一切正常。我的意思是取消,默认相机功能的拍摄功能。但假设,如果我浏览除照相机以外的所有内容,如地图、网络视图等,并且至少打开照相机时,取消按钮不起作用(捕获按钮在所有情况下都起作用)。在我捕获后,诸如“重新拍摄”、“使用”等控件都会成功显示,但这些按钮也无法访问
注:以上问题在发射后直接打开相机时不会发生
这些就是我试图解决这个问题的方法
UIImagePickerController
实例设为零,并在每次调用camera
功能时新分配-(IBAction)btnCamera_Clicked:(id)sender{
_imgPicker = nil;
_imgPicker = [[UIImagePickerController alloc] init];
_imgPicker.delegate = self;
_imgPicker.allowsEditing = NO;
_imgPicker.wantsFullScreenLayout = YES;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
_imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
_imgPicker.showsCameraControls = NO;
_imgPicker.cameraOverlayView = vwCameraOverlay;
[self.tabBarController presentModalViewController:_imgPicker animated:YES];
}
}
使用以下代码
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
[picker dismissModalViewControllerAnimated:YES];
}
编辑:
要打开控制器,请尝试
[self.tabBarController presentModalViewController:picker animated:YES];
它应该可以工作。我已经实现了。但问题是,按钮本身不可访问(75%的部分是不可触摸的)。似乎您正在将摄影机视图添加到父视图之上,是吗?尝试将UIImagePickerController呈现为模态。是的,我仅将imagPickerController呈现为模态。这是我用于呈现相机的代码。“[自我呈现模态控制器:_imgpickeranimated:YES];“我想您的问题在于
vwCameraOverlay
检查覆盖的大小,它正在阻止控件。@iphone:我已经将视图大小精确设置为屏幕大小。“vwCameraOverlay.frame=CGRectMake(0,0320480);”。如果它是因为帧大小,那么它应该在我每次使用相机时出现。不,你的叠加应该是CGRectMake(0,0320480.0-44.0);44.0是“摄影机”工具栏,因此您的覆盖应该在“摄影机视图”中的工具栏启动之前结束。好吧,假设这解决了我的问题。但我的疑问是,当我在其他视图之前首先打开时,它是如何工作的。好的,我将尝试您的解决方案并让您知道。@iphone:不,这也没有帮助。