我在我的iPhone应用程序中使用自定义叠加相机,我已经按照this教程。 我的问题是 - 在快门打开之前叠加,快门用户可以看到叠加项目(按钮,图像等)
我尝试使用计时器来延迟快门打开动画时的叠加外观,但这不是正确的方法。
有更好的主意吗?
-(void)onShowCam
{
NSLog(@"sdadas");
overlay = [[CustomOverlayView alloc]
initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];
overlay.delegate = self;
.....
答案 0 :(得分:0)
尝试使用此
cameraOverlay=[[ImagePickerController alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];
imagePicker.sourceType=UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate=self;
imagePicker.showsCameraControls=NO;
imagePicker.cameraFlashMode=UIImagePickerControllerCameraFlashModeOff;
[imagePicker setCameraOverlayView:cameraOverlay];
//Show camera
[self presentModalViewController:imagePicker animated:YES];
答案 1 :(得分:0)
在iPad上,此问题不存在,默认情况下,叠加视图位于快门动画后面。但是在iPhone上,叠加层出现在前面。
我找到了一个适合我的解决方案。
您必须在此方法中将叠加视图设置为子视图:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (!viewController)
return;
UIView* controllerViewHolder = viewController.view;
UIView* controllerCameraView = [[controllerViewHolder subviews] objectAtIndex:0];
UIView* controllerPreview = [[controllerCameraView subviews] objectAtIndex:0];
[controllerCameraView insertSubview:self.overlayView aboveSubview:controllerPreview];
}
希望有所帮助
原始来源: http://www.alexcurylo.com/blog/2009/06/18/uiimagepickercontroller-in-3-0/