iOS 10:UIImagePickerViewController无法设置Flash模式

问题描述:

我正在为我的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

这其中一个让我感到有点愚蠢。发布这个问题后不久,我意识到我正在测试的设备没有闪光灯功能。如果您使用闪光灯模式,您应该怎么做,首先要询问UIImagePickerController类,如果设备能够首先使用闪光灯。 Documentation