실시간 카메라 미리보기를 기본 UIView에 신속하게 추가하려면 iOS SDK의 AVFoundation 프레임워크 또는 기본 UIImagePickerController()를 사용할 수 있습니다. 이 예에서 우리의 목표는 UIView에 카메라 미리보기를 제공하는 것이고 Imagepicker는 해당 작업에 적합하기 때문에 ImagePicker를 사용할 것입니다. AVFoundation은 카메라에 대한 많은 사용자 정의 또는 다양한 유형의 사용자 정의 작업이 필요할 때 사용할 수 있습니다.
UIView에 카메라 미리보기를 표시하려면 다음 단계를 수행해야 합니다.
-
UIImagePickerController 개체를 만듭니다.
-
UIImagePickerControllerDelegate 및 UINavigationControllerDelegate에 대한 클래스를 따르십시오.
-
1단계에서 만든 개체에 대리자를 할당합니다.
-
자식으로 만든 개체 추가
-
자식의 뷰를 UIView에 subView로 추가합니다.
동일한 결과를 얻기 위해 아래 코드를 사용합니다.
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib let imgPicker = UIImagePickerController() if UIImagePickerController.isCameraDeviceAvailable( UIImagePickerController.CameraDevice.front) { imgPicker.delegate = self imgPicker.sourceType = .camera addChild(imgPicker) self.view.addSubview(imgPicker.view) imgPicker.view.frame = self.view.bounds imgPicker.allowsEditing = false imgPicker.showsCameraControls = false imgPicker.view.autoresizingMask = [.flexibleWidth, .flexibleHeight] } }
이 예제에서 우리는 함수를 작성하지 않았고 여기에 직접 객체를 만들었습니다. 그러나 어떤 변수를 사용할 필요가 없을 수도 있는 상황에서 지연 변수를 사용하는 것은 항상 좋은 선택입니다.
이 코드는 카메라를 사용하므로 시뮬레이터에서 작동하지 않습니다. iPhone 7+에서 위의 코드를 실행하면 아래와 같은 결과가 나옵니다.