在自定义相机中添加过渡

Add transition in custom camera

我正在实现自定义相机。 一切正常。 我想在从前到后切换时添加过渡,反之亦然。 这是我的代码。

      @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 导航到另一个的方式)。

我该如何实现?

您可以在相机视图后面使用具有清晰背景颜色的 UIView,然后在将相机从后切换到前或反之时向该视图添加过渡。通过声明 UIView 的 @IBOutlet 或以编程方式执行此操作,然后在开关上使用此操作:希望它会有所帮助。

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

                       // do your stuff
   },
                     completion: nil)

将您的 ImageCapturingView 替换为 "capturePreviewView"

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

    }

在 mainQueue

中执行任何 UI 更改