通过 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 的大小
从 uiimagepicker 上传 uiwebview 中的图像
iPad 的 UITabBar 弹出窗口中的 UIImagePicker 和相机