如何删除UIImagePickerController中的缩放滑块

我需要删除相机屏幕中的缩放滑块。 这是我的代码:

import UIKit extension UIImagePickerController { class func sourceCameraModePhoto(_ delegate: UIImagePickerControllerDelegate & UINavigationControllerDelegate, overlayView: UIView) -> UIImagePickerController { let picker = UIImagePickerController() picker.sourceType = .camera picker.cameraCaptureMode = .photo picker.showsCameraControls = false picker.view.addSubview(overlayView) picker.delegate = delegate return picker } 

在此处输入图像描述

我想找到了这个问题的答案:缩放滑块是一个UISlider,如果你的imagePickerController的view属性在其子视图中包含一个UISlider,你可以将它的alpha设置为零。 如果您升级到iOS10,则会出现此问题。

 func subviews(_ view: UIView) -> [UIView] { return view.subviews + view.subviews.flatMap { subviews($0) } } let myViews = subviews(imagePickerController.view) for view in myViews { if view is UISlider { view.alpha = 0.0 } } 

我希望这有帮助。

如果有更好的解决方案,请告诉我。

这将删除缩放滑块:

picker.view.isUserInteractionEnabled = false

它也可能是未来的证据。

以上敲除了相机的用户交互。

这最终对我有用。

将cameraOverlay作为子视图添加到选择器。

 if let overlay = overlayViewController?.view { imagePicker.view.addSubview(overlay) } 

应该在加载UIImageViewController之前设置showsCameraControls

这意味着您可以在自定义UIImageViewController的初始化中使用它。

 - (instancetype)init { if (self = [super init]) { self.showsCameraControls = false; } return self; }