我需要删除相机屏幕中的缩放滑块。 这是我的代码:
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
}
答案 0 :(得分:2)
我想找到了这个问题的答案: 缩放滑块是UISlider,如果您的imagePickerController视图属性在其子视图中包含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
}
}
我希望这会有所帮助。
让我知道是否有更好的解决方案。
答案 1 :(得分:0)
这将删除缩放滑块:
picker.view.isUserInteractionEnabled = false
它也可能是未来的证据。
上述内容会破坏相机的用户互动。
这最终对我有用。
将cameraOverlay作为子视图添加到选择器。
if let overlay = overlayViewController?.view {
imagePicker.view.addSubview(overlay)
}
答案 2 :(得分:0)
showsCameraControls
之前设置 UIImageViewController
。
这意味着您可以在自定义UIImageViewController
的初始化中使用它。
- (instancetype)init {
if (self = [super init]) {
self.showsCameraControls = false;
}
return self;
}