通过 UIImagePicker 中的 cameraOverlay 与相机控件交互

Posted

技术标签:

【中文标题】通过 UIImagePicker 中的 cameraOverlay 与相机控件交互【英文标题】:Interacting with camera controls through cameraOverlay in UIImagePicker 【发布时间】:2014-03-13 16:19:35 【问题描述】:

我正在尝试使用 cameraOverlay 为图像选择器模拟 ios 的“方形模式”,因为此功能未实现。 (采用this question 的风格。)这是在iPad 应用程序中。

我的问题是,对于第一个屏幕,我可以完美地使用所有控件。但是对于图像选择器的第二个屏幕,无法与按钮交互。

我的叠加层是picker.bounds 的大小 - 我相信这会阻止与我的按钮交互,就像我旋转屏幕横向一样,我只能与右手按钮交互......

所以,直接的问题: 1)是否可以通过cameraOverlay层强制工具按钮响应触摸? 2)或者,是否可以将工具栏置于 cameraOverlay 之上。 (我不知道为什么你会想要它在下面,尤其是看到你可以隐藏它。我相信这是 iOS 中的一个错误)

图片:

屏幕一,按钮工作正常

屏幕二,按钮没有响应。 (通过叠加)

我的代码:

if (type == UIImagePickerControllerSourceTypeCamera) 
        //Create camera overlay
        CGRect f = picker.view.bounds;

        CGFloat barHeight = (f.size.height - f.size.width) / 2;
        UIGraphicsBeginImageContext(f.size);
        [[UIColor colorWithWhite:0 alpha:1] set];
        UIRectFillUsingBlendMode(CGRectMake(0, 0, f.size.width, barHeight), kCGBlendModeNormal);

        UIImage *overlayImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        UIImageView *overlayIV = [[UIImageView alloc] initWithFrame:f];
        overlayIV.image = overlayImage;

        [picker.toolbar setUserInteractionEnabled:YES];

        [picker.cameraOverlayView addSubview:overlayIV];
        [picker.cameraOverlayView bringSubviewToFront:picker.toolbar];

    

    [self presentViewController:picker animated:YES completion:nil];​

【问题讨论】:

【参考方案1】:

你不能说:

  picker.cameraOverlayView.userInteractionEnabled= NO;
  overlayIV.userInteractionEnabled= NO;

IIRC,UIImageView 默认为 userInteractionEnabled NO,所以最后一部分可能是不必要的。

【讨论】:

这可能就是我一直在寻找的辉煌。 (而且很烦人)周一之前不在办公室,会通知你的! 嗯,我宁愿以令人讨厌的简单光彩或迷人的复杂光彩而出名吗?希望它对你有用! 就是那个!谢谢!

以上是关于通过 UIImagePicker 中的 cameraOverlay 与相机控件交互的主要内容,如果未能解决你的问题,请参考以下文章

更改通过 UIPopOver (iPad) 呈现的 UIImagePicker 的大小

UIView子视图中的IOS UIImagePicker

从 uiimagepicker 上传 uiwebview 中的图像

iPad 的 UITabBar 弹出窗口中的 UIImagePicker 和相机

UIPopoverController 中的 iPad UIImagePicker 仅选择保存的图像(不是来自相册)?

UIIMagePicker 相机横向方向问题