我正在为我的UIImagePickerViewController创建自定义控件。我将默认的闪存设置设置为.off,并希望在打开和关闭之间切换。
但是我很难让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上的闪存模式。
我不知道为什么这不工作,我找不到任何其他方式来设置闪存模式,除了我正在做的。
发布于 2017-05-07 20:06:46
这件事让我觉得有点蠢。在发布这个问题后不久,我意识到我正在测试的设备没有闪存功能。如果您正在使用闪存模式,您应该做的是首先询问UIImagePickerController类,如果设备能够首先使用闪存。文档。
https://stackoverflow.com/questions/43358441
复制相似问题