【问题标题】:cameraOverlayView prevents editing with allowsEditingcameraOverlayView 防止使用allowEditing进行编辑
【发布时间】:2012-04-28 00:34:59
【问题描述】:

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

[imagePicker setAllowsEditing:YES];

但如果我也使用cameraOverlayView,编辑模式就不再起作用了。屏幕出现,但平移和捏合手势没有任何作用。

我使用的是普通的图像选择器控制器:

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

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

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

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

我错过了什么?

【问题讨论】:

标签: ios camera uiimagepickercontroller editing camera-overlay


【解决方案1】:

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

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

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

注意:除了那个绝妙的提示之外,您可能还想在那个阶段使用这条信息来删除您的叠加视图:UIImagePicker cameraOverlayView appears on Retake screen

【讨论】:

  • 谢谢。我不再使用这个功能,所以我没有在我自己的应用程序上测试过它,但我认为它是 hunky-dory。对不起,我之前错过了!
  • 经过测试,有效。在 iOS 7 中,我的叠加视图还拦截了对“使用照片”和“重拍”按钮的触摸,这解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多