Добавить переход в пользовательской камере - PullRequest
0 голосов
/ 09 января 2019

Я использую кастомную камеру. Все работает отлично. Я хочу добавить переход при переключении спереди назад и наоборот. Вот мой код.

      @IBAction func switchCamera(_ sender: Any) {

        captureSession.beginConfiguration()
        let newDevice = (currentDevice?.position == AVCaptureDevice.Position.back) ? frontCamera : backCamera
        for input in captureSession.inputs {
            captureSession.removeInput(input as! AVCaptureDeviceInput)
        }
        let cameraInput:AVCaptureDeviceInput
        do {
            cameraInput = try AVCaptureDeviceInput(device: newDevice!)
        } catch {
            print(error)
            return
        }
        if captureSession.canAddInput(cameraInput) {
            captureSession.addInput(cameraInput)
        }
        currentDevice = newDevice
        captureSession.commitConfiguration()
    }

Я хочу добавить, чтобы добавить плавную анимацию при переключении сторон камеры (аналогично тому, как мы перемещаемся от одного ViewController к другому).

Как я могу это реализовать?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Замените ваш ImageCapturingView на "capturePreviewView"

 UIView.transition(with: capturePreviewView, duration: 0.5, options: [.transitionFlipFromLeft, .allowAnimatedContent], animations: nil) { (finished) in
   //Code

    }

Выполнение любых изменений пользовательского интерфейса в mainQueue

0 голосов
/ 09 января 2019

Вы можете использовать UIView за видом камеры с чистым фоновым цветом, а затем добавить переход к этому виду при переключении камеры с задней на переднюю или наоборот. Сделайте это с объявлением @IBOutlet UIView или программно, а затем включите его, используйте это: Надеюсь, это поможет.

UIView.transition(with: yourView,
                     duration: 0.5,
                     options: [.transitionFlipFromRight], // change type accordingly
                     animations: {

                       // do your stuff
   },
                     completion: nil)
...