iOS 10: UIImagePickerViewController 无法设置 Flash 模式
iOS 10: UIImagePickerViewController Can Not Set Flash Mode
我正在为我的 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
上的闪光灯模式。
我不知道为什么这不起作用,除了我正在做的,我找不到任何其他方法来设置闪光灯模式。
这个实际上让我觉得有点愚蠢。在发布这个问题后不久,我意识到我正在测试的设备没有闪存功能。如果您使用闪光灯模式,您应该首先询问 UIImagePickerController
class 设备是否能够首先使用闪光灯。 Documentation.
我正在为我的 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
上的闪光灯模式。
我不知道为什么这不起作用,除了我正在做的,我找不到任何其他方法来设置闪光灯模式。
这个实际上让我觉得有点愚蠢。在发布这个问题后不久,我意识到我正在测试的设备没有闪存功能。如果您使用闪光灯模式,您应该首先询问 UIImagePickerController
class 设备是否能够首先使用闪光灯。 Documentation.