1

我在我的 iPhone 应用程序中为相机使用自定义叠加,我已按照教程进行操作。我的问题是 - 覆盖在快门打开之前出现,这意味着用户可以在快门上看到覆盖项(按钮、图像等)

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

有更好的主意吗?

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

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

    overlay.delegate = self;

   .....
4

2 回答 2

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/

于 2013-03-05T08:44:48.547 回答
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];
于 2013-02-06T08:07:17.837 回答