如何删除 UIImagePickerController 中的缩放滑块
How to remove zoom slider in 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 的视图 属性 在其子视图下方包含一个 UISlider,您可以将其 alpha 设置为零。如果您升级到 iOS10.
,则会出现此问题
func subviews(_ view: UIView) -> [UIView] {
return view.subviews + view.subviews.flatMap { subviews([=10=]) }
}
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)
}
showsCameraControls
应该在加载 UIImageViewController
之前设置。
这意味着你可以在自定义的初始化中使用它UIImageViewController
。
- (instancetype)init {
if (self = [super init]) {
self.showsCameraControls = false;
}
return self;
}
我需要删除相机屏幕中的缩放滑块。 这是我的代码:
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 的视图 属性 在其子视图下方包含一个 UISlider,您可以将其 alpha 设置为零。如果您升级到 iOS10.
,则会出现此问题func subviews(_ view: UIView) -> [UIView] {
return view.subviews + view.subviews.flatMap { subviews([=10=]) }
}
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)
}
showsCameraControls
应该在加载 UIImageViewController
之前设置。
这意味着你可以在自定义的初始化中使用它UIImageViewController
。
- (instancetype)init {
if (self = [super init]) {
self.showsCameraControls = false;
}
return self;
}