为了在UIImagePickerControllerSourceTypeCamera
中创建自定义工具栏,我必须关闭相机控件:
pickerOne.showsCameraControls = YES;
我想展示变焦,闪光灯,开关相机,并专注于UIImagePickerController
,但我想创建自定义视图。添加自定义视图时,只有在我关闭cameraControls
时才会显示。
有没有办法不隐藏相机控件并进行自定义视图?或者我是否必须手动添加这些按钮?
答案 0 :(得分:2)
我认为除了在自定义视图(叠加层)中实现本机功能之外,没有其他办法(至少以直接的方式)。
其他方法(我没试过)是将自定义视图(不使用cameraOverlay属性)添加到UIImagePickerController根视图。这不是建议/允许的,但似乎它会起作用。自动闪光/缩放/前置摄像头...不使用自定义视图的原因是,视图层次结构不同。
如果你看看流行的相机应用程序,他们中的大多数都会实现这些控件。另外,我做了同样的事 事实上,实施它们并不困难。 “点击聚焦”实现起来很棘手,实际的焦点是默认完成的。我们所要做的就是在触摸时画出正方形。
答案 1 :(得分:0)
您可以通过检查hittest方法中的接收视图来忽略overlayview上的触摸。只需将此代码添加到您的叠加层视图中,就会忽略该视图上的所有触摸,但不会忽略其子视图中的那些。
-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
id hitView = [super hitTest:point withEvent:event];
if (hitView == self) return nil;
else return hitView;
}
如果今天在stackoverflow上读到这个,但我不记得在哪里,sry。