2017-04-12 4 views
0

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.

+0

Haben Sie überprüft, dass Ihr Code tatsächlich ausgeführt wird? Hat 'mediaPicker' den richtigen Wert? – jcaron

Antwort

0

Dieser machte mich tatsächlich ein bisschen dumm. Kurz nachdem ich diese Frage gestellt hatte, wurde mir klar, dass das Gerät, auf dem ich getestet habe, keine Flash-Fähigkeiten hatte. Was Sie tun sollten, wenn Sie den Flash-Modus verwenden, ist zunächst die Klasse UIImagePickerController zu fragen, ob das Gerät überhaupt in der Lage ist, Flash zu verwenden. Documentation.

Verwandte Themen