2017-04-12 36 views
0

我正在爲我的UIImagePickerViewController創建自定義控件。我將默認閃光燈設置設置爲.off,我想在開啓和關閉之間切換。iOS 10:UIImagePickerViewController無法設置Flash模式

但是我很難讓UIImagePickerControllerCameraFlashMode從打開到關閉。這看起來應該是一件非常容易的事情。但我一直在嘗試,我無法得到以下更改閃光模式,它只停留在.off模式。

func didTapFlashButton() -> Bool { 
    if let picker = mediaPicker { 
     if picker.cameraFlashMode == .on || picker.cameraFlashMode == .auto { 
      picker.cameraFlashMode = UIImagePickerControllerCameraFlashMode.off 
      return false 
     } 
     else { 
      picker.cameraFlashMode = UIImagePickerControllerCameraFlashMode.on 
      return true 
     } 
    } 
    return false 
} 

爲什麼這不會更新我的UIImagePickerController上的閃光燈模式?


編輯(回答評論)

是如果代碼執行我檢查,它始終執行else塊將其設置爲.on。所以UIImagePickerController正確承認我設置的默認閃光模式是.false(通過打印語句驗證)。

但是,無論何時點擊按鈕將閃爍模式更改爲.on,閃光燈都不會起作用。這意味着它從未更新UIImagePickerController上的閃光模式。

我不知道爲什麼這不起作用,我找不到任何其他方式來設置Flash模式,而不是我正在做的事情。

+0

您是否檢查過您的代碼實際執行? 'mediaPicker'是否包含正確的值? – jcaron

回答

0

這其中一個讓我感到有點愚蠢。發佈這個問題後不久,我意識到我正在測試的設備沒有閃光燈功能。如果您使用閃光燈模式,您應該怎麼做,首先要詢問UIImagePickerController類,如果設備能夠首先使用閃光燈。 Documentation