2017-03-21 6 views
2

カメラの画面でズームスライダを削除する必要があります。 これは私のコードです: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 
    } 

enter image description here

答えて

1

私が見つけたこの問題への答えを推測:あなたのimagePickerControllerのビュープロパティがサブビューダウンUISliderが含まれている場合 はズームスライダが、UISliderで、あなたが設定することができますそのアルファを0にする。この問題は、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 
    } 
} 

これが役立ちます。

もっと良い解決策があるかどうか教えてください。

+0

「viewDidAppear」以降のメソッドで有効にすると機能します。 'viewDidLoad'または 'viewWillAppear'は十分ではありません – Krekin

0

これは、ズームスライダ削除します:

picker.view.isUserInteractionEnabled = false

をそして、それはあまりにも、おそらく将来の証拠です。

上記は、カメラのユーザー対話をノックアウトします。

私は最後に私のために働いた。

カメラオーバーレイをサブビューとしてピッカーに追加します。

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

@ Shiladitya私はこれを試しましたが、その機能は無効になっていますが、削除/非表示はしません。 –

関連する問題