我正在实现自定义相机。 一切运行正常。 我想在从前向后切换时添加过渡,反之亦然。 这是我的代码。
@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导航到另一个ViewController的方式。)
我该如何实现?
答案 0 :(得分:0)
您可以在摄像机视图后面使用UIView,并使用清晰的背景色,然后在将摄像机从后切换到前或反之时向该视图添加过渡。通过声明UIView的@IBOutlet或以编程方式进行此操作,然后在开关上使用它:希望它会有所帮助。
UIView.transition(with: yourView,
duration: 0.5,
options: [.transitionFlipFromRight], // change type accordingly
animations: {
// do your stuff
},
completion: nil)
答案 1 :(得分:0)
用“ capturePreviewView”替换ImageCapturingView
UIView.transition(with: capturePreviewView, duration: 0.5, options: [.transitionFlipFromLeft, .allowAnimatedContent], animations: nil) { (finished) in
//Code
}
在mainQueue中执行任何UI更改