Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

Swift에서 UIView에 라이브 카메라 미리보기를 추가하는 방법은 무엇입니까?

<시간/>

실시간 카메라 미리보기를 기본 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+에서 위의 코드를 실행하면 아래와 같은 결과가 나옵니다.

Swift에서 UIView에 라이브 카메라 미리보기를 추가하는 방법은 무엇입니까?