Ich arbeite an der Erstellung von benutzerdefinierten Steuerelementen für meine UIImagePickerViewController
. Ich habe die Standardblitzeinstellung auf .off
eingestellt und möchte zwischen Ein und Aus wechseln.iOS 10: UIImagePickerViewController Flash-Modus kann nicht eingestellt werden
Aber ich habe eine Menge Probleme, die UIImagePickerControllerCameraFlashMode
von ein auf aus zu schalten. Das sollte scheinbar eine sehr einfache Sache sein. Aber ich habe es versucht und ich kann das folgende nicht bekommen, um den Blitzmodus zu ändern, es bleibt nur im .off
Modus.
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
}
Warum ist die Aktualisierung nicht den Blitzmodus auf meinem UIImagePickerController
?
EDIT (Antwort auf Kommentar)
Ja, ich überprüft haben, ob der Code ausführt, und es führt immer den else
Block zu .on
einzustellen. So bestätigt der UIImagePickerController
korrekt, dass der Standardblitzmodus, den ich einstelle, .false
ist (verifiziert über print-Anweisung).
Aber immer, wenn ich die Taste zum Wechseln des Blitzmodus auf .on
antippen, funktioniert der Blitz nie. Dies bedeutet, dass es nie den Flash-Modus auf dem UIImagePickerController
aktualisiert hat.
Ich weiß nicht, warum das nicht funktioniert und ich finde keine andere Möglichkeit, den Flash-Modus als das, was ich tue, einzustellen.
Haben Sie überprüft, dass Ihr Code tatsächlich ausgeführt wird? Hat 'mediaPicker' den richtigen Wert? – jcaron