我有一个透明 View ,其中使用 CoreGraphics 在其上绘制了一个矩形。
当相机启动时,自定义叠加 View 位于快门动画上方。
您看到的是标准相机快门,上面有自定义矩形。
如何让它在正确的位置,在快门动画下方?我查看了其他示例代码,但它适用于 OS 3.1,似乎并没有做任何不同的事情。

这是我的代码:

-(IBAction)cameraButton{
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerCameraDeviceRear]){

    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType =  UIImagePickerControllerSourceTypeCamera;

    //Add the OverlayView with the custom Rectangle
    CGRect overlayFrame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
    OverlayView *overlayView = [[OverlayView alloc]initWithFrame:overlayFrame];
    picker.cameraOverlayView = overlayView;
    [overlayView release];

    [self presentModalViewController:picker animated:YES];
    [picker release];
}
}

最佳答案

在 iPad 上不存在此问题,并且默认情况下叠加 View 位于快门动画后面。但在 iPhone 上,覆盖层出现在前面。

我找到了一个对我有用的解决方案。

您必须在此方法中将叠加 View 设置为 subview :

- (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/

关于iphone - 快门动画上方的cameraOverlayView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5439130/

10-10 22:52