cameraOverlayView阻止使用allowsEditing进行编辑

Ste*_*ner 8 camera editing uiimagepickercontroller ios camera-overlay

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

[imagePicker setAllowsEditing:YES];
Run Code Online (Sandbox Code Playgroud)

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

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

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
Run Code Online (Sandbox Code Playgroud)

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

CameraOverlayViewController *overlayController = [[CameraOverlayViewController alloc] init];
UIView *overlayView = overlayController.view;
[imagePicker setCameraOverlayView:overlayView];
Run Code Online (Sandbox Code Playgroud)

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

我错过了什么?

Bil*_*hih 32

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

将此方法添加到叠加层视图中,它将忽略触摸,以便将它们传递到下面的视图.(您正在覆盖检测触摸的UIView方法.)

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

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