iPhone相机叠加问题

时间:2013-02-06 07:43:41

标签: iphone ios camera overlay

我在我的iPhone应用程序中使用自定义叠加相机,我已经按照this教程。 我的问题是 - 在快门打开之前叠加,快门用户可以看到叠加项目(按钮,图像等)

我尝试使用计时器来延迟快门打开动画时的叠加外观,但这不是正确的方法。

有更好的主意吗?

-(void)onShowCam
{
   NSLog(@"sdadas");

    overlay = [[CustomOverlayView alloc]
           initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];

    overlay.delegate = self;

   .....

2 个答案:

答案 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/