如何在Swift中將即時攝像頭預覽新增到UIView?
為了在Swift中將即時攝像頭預覽新增到預設的UIView中,我們可以使用iOS SDK的AVFoundation框架或原生的UIImagePickerController()。在這個例子中,我們將使用ImagePicker,因為我們的目標是在UIView上顯示攝像頭預覽,而ImagePicker適合這項任務。當我們需要對攝像頭進行大量自定義或執行不同型別的自定義操作時,可以使用AVFoundation。
要在UIView上顯示攝像頭預覽,我們需要執行以下步驟。
建立一個UIImagePickerController物件。
使我們的類符合UIImagePickerControllerDelegate和UINavigationControllerDelegate協議。
將委託分配給我們在步驟一中建立的物件。
將我們建立的物件新增為子檢視。
將子檢視的檢視作為子檢視新增到我們的UIView中。
為了實現這一點,我們將使用下面的程式碼。
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+上執行上述程式碼時,得到的結果如下。

廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP