如何删除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; }