在UIImagePickerController中删除缩放滑块

Chi*_*isx 5 uiimagepickercontroller uislider ios

我无法访问默认情况下显示的缩放滑块UIImagePickerController.这似乎不可访问,我必须隐藏它,因为它cameraOverlay在我的UIImagePickerController中弹出我的视图.有人能告诉我如何隐藏用户捏合和"缩放"时出现的缩放滑块吗?

这是滑块的样子:

PS这不是我的自定义相机.这只是出现在我身上的滑块的图像cameraOverlay

Ruf*_*all 1

由于 iOS 10.0,我最近遇到了这个问题。在花费了大量时间谷歌搜索但没有找到任何有效的方法之后,我想出了自己的解决方案:

myVC.PresentViewController (_imagePicker, false, ()=>_imagePicker.View.Subviews[0].Subviews[0].Subviews[0].Subviews[0].Subviews[1].RemoveFromSuperview();
Run Code Online (Sandbox Code Playgroud)

本质上,一旦呈现了选择器视图 - “_imagePicker.View.Subviews[0].Subviews[0].Subviews[0].Subviews[0].Subviews 1 .RemoveFromSuperview();” 将执行以从相机中删除滑块视图。

这可能会在未来的 iOS 更新中出现问题 - 因此我不建议将其用于生产应用程序。如果您正在做很多自定义相机的工作 - 建议您使用 AVFoundation 框架。

有人应该向苹果提出一个错误,在 iOS 10 中“imagePicker.ShowsCameraControls = NO;” 实际上并没有删除所有相机控件。

如果您需要弄清楚如何在将来执行类似的操作,您可以使用:Xcode 中的“调试视图层次结构”按钮来查看 viewHierachy,然后通过查看视图名称来单击要删除/猜测的组件:

层次结构路径示例

在本例中,我要删除的视图是“CAMViewfinderView”。希望这可以帮助!

请注意,我的代码是用 CSharp (Xamarin.IOS) 编写的,但同样的事情也可以在 Objective-C 中工作 - 只是语法略有不同。

-鲁弗斯