cameraOverlayView阻止使用allowsEditing进行编辑

时间:2012-04-16 16:43:57

标签: ios camera uiimagepickercontroller editing camera-overlay

拍摄后拍摄的照片(移动和缩放)在我的应用程序中使用此行正常工作:

[imagePicker setAllowsEditing:YES];

但如果我也使用cameraOverlayView,则编辑模式不再起作用。屏幕出现,但是平移和捏合手势不会发生任何事情。

我正在使用你的普通图像选择器控制器:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

我添加了一个从自定义视图控制器视图创建的相机覆盖视图:

CameraOverlayViewController *overlayController = [[CameraOverlayViewController alloc] init];
UIView *overlayView = overlayController.view;
[imagePicker setCameraOverlayView:overlayView];

在IB中,该视图设置为启用用户交互和多次触摸,这使其可以在拍摄照片时进行缩放和聚焦。但是一旦拍摄完照片并进入编辑模式,就无法平移或捏合移动或缩放照片。

我错过了什么?

1 个答案:

答案 0 :(得分:32)

您的叠加层会占用摄像机视图的整个空间吗?如果是这样,即使您有透明背景,触摸也会转到叠加而不是下面的视图。

将此方法添加到叠加层视图中,它将忽略触摸,以便将它们传递到下面的视图。 (你正在重写一种检测触摸的UIView方法。)

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
    return NO;
}

注意:除了精彩的提示之外,您可能还想在此阶段使用此信息来删除叠加视图:UIImagePicker cameraOverlayView appears on Retake screen