隐藏UIImagePickerControllerSourceTypceCamera工具栏,但特定按钮?
问题描述:
为了使我的自定义工具栏在我UIImagePickerControllerSourceTypeCamera
,我不得不关掉摄像机控制这样的:隐藏UIImagePickerControllerSourceTypceCamera工具栏,但特定按钮?
pickerOne.showsCameraControls = YES;
我想说明的变焦,闪光灯,切换摄像头,并专注于UIImagePickerController
,但我想创建我的自定义视图。添加我的自定义视图时,只有在关闭cameraControls
时才会显示。
有什么方法可以不隐藏相机控制并使我的自定义视图?或者我将不得不手动添加这些按钮?
答
您可以通过检查hittest方法中的接收视图来忽略覆盖视图上的触摸。只需将此代码添加到叠加视图中,该视图上的所有内容都将被忽略,但不会覆盖其子视图上的内容。
-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
id hitView = [super hitTest:point withEvent:event];
if (hitView == self) return nil;
else return hitView;
}
如果今天在*上阅读,但我不记得在哪里,sry。
答
我相信除了在自定义视图中实现本地功能(叠加),没有其他方式(至少以直接方式)。
其他方法(我没有尝试过)是将自定义视图(不使用cameraOverlay属性)添加到UIImagePickerController rootview。这不是建议/允许的,但似乎会起作用。自动闪光/缩放/前置摄像头...不使用自定义视图的原因是,视图层次不同。
如果你看看流行的相机应用程序,他们大多数实现这些控制。另外,我也做了同样的事情。
事实上,它应该很难实现。 '点击对焦'实施起来很棘手,实际的焦点是默认完成的。我们所需要做的就是围绕触摸画出正方形。