我正在尝试使用 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];
最佳答案
你就不能说:
picker.cameraOverlayView.userInteractionEnabled= NO;
overlayIV.userInteractionEnabled= NO;
IIRC,UIImageView 默认为 userInteractionEnabled NO,因此最后一部分可能是不必要的。
关于ios - 通过 UIImagePicker 中的 cameraOverlay 与相机控件交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22384718/