iOS 10:UIImagePickerViewController 无法设置 Flash 模式
Posted
技术标签:
【中文标题】iOS 10:UIImagePickerViewController 无法设置 Flash 模式【英文标题】:iOS 10: UIImagePickerViewController Can Not Set Flash Mode 【发布时间】:2017-04-12 00:45:51 【问题描述】:我正在为我的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
上的闪存模式。
我不知道为什么这不起作用,除了我正在做的事情之外,我找不到任何其他方法来设置闪光模式。
【问题讨论】:
您是否检查过您的代码是否实际执行?mediaPicker
是否包含正确的值?
【参考方案1】:
这个真的让我觉得有点傻。发布此问题后不久,我意识到我正在测试的设备没有闪存功能。如果您使用闪存模式,您应该首先询问UIImagePickerController
类设备是否能够首先使用闪存。 Documentation.
【讨论】:
以上是关于iOS 10:UIImagePickerViewController 无法设置 Flash 模式的主要内容,如果未能解决你的问题,请参考以下文章
iOS 8、iOS 9、iOS 10 和 iOS 11 上的 UITabBar 的高度是多少?