@@ -58,6 +58,7 @@ public final class CameraViewController: UIViewController {
5858 private var torchMode : TorchMode = . off {
5959 didSet {
6060 guard let captureDevice = captureDevice, captureDevice. hasFlash else { return }
61+ guard captureDevice. isTorchModeSupported ( torchMode. captureTorchMode) else { return }
6162
6263 do {
6364 try captureDevice. lockForConfiguration ( )
@@ -138,7 +139,8 @@ public final class CameraViewController: UIViewController {
138139 torchMode = . off
139140 captureSession. startRunning ( )
140141 focusView. isHidden = false
141- flashButton. isHidden = false
142+ flashButton. isHidden = captureDevice? . position == . front
143+ cameraButton. isHidden = !showsCameraButton
142144 }
143145
144146 func stopCapturing( ) {
@@ -150,6 +152,7 @@ public final class CameraViewController: UIViewController {
150152 captureSession. stopRunning ( )
151153 focusView. isHidden = true
152154 flashButton. isHidden = true
155+ cameraButton. isHidden = true
153156 }
154157
155158 // MARK: - Actions
@@ -243,6 +246,7 @@ public final class CameraViewController: UIViewController {
243246 }
244247 captureSession. addInput ( newInput)
245248 captureSession. commitConfiguration ( )
249+ flashButton. isHidden = position == . front
246250 } catch {
247251 delegate? . cameraViewController ( self , didReceiveError: error)
248252 return
@@ -423,7 +427,7 @@ private extension CameraViewController {
423427 func makeCameraButton( ) -> UIButton {
424428 let button = UIButton ( type: . custom)
425429 button. setImage ( imageNamed ( " cameraRotate " ) , for: UIControlState ( ) )
426- button. isHidden = showsCameraButton
430+ button. isHidden = ! showsCameraButton
427431 return button
428432 }
429433}
0 commit comments