iOS標準のカメラアプリは撮影時にViewを暗転させています。
暗転によって、ユーザに撮影したタイミングを伝えているのではないかと考え実現しました。
確認した環境
iOS11
実装
extension CameraViewController: AVCapturePhotoCaptureDelegate{
func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
cameraFoundationView.alpha = 0
}
func photoOutput(_ output: AVCapturePhotoOutput, didCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
UIView.animate(withDuration: 0.3, animations: {[weak self] in
self?.cameraFoundationView.alpha = 1
})
}
}
showCameraPreviewLayer
の layer
に AVCaptureVideoPreviewLayer
をインサートしています。
iOS標準のカメラアプリの挙動を確認したところ、暗転する時は瞬時に行われ、戻る時に時間がかかっていたのでこのような実装にしました。