1、在info.plist中添加Privacy - Photo Library Usage Description、Privacy - Camera Usage Description兩個字段,這兩個字段用于獲取系統(tǒng)相機(jī)和相冊權(quán)限。如果沒有獲取權(quán)限調(diào)用相機(jī)或相冊程序回出現(xiàn)crash
2、給viewController添加UIImagePickerControllerDelegate、 UINavigationControllerDelegate兩個代理
3、調(diào)用相機(jī)或相冊
func selectPhoto() {
let imagePicker: UIImagePickerController = UIImagePickerController()
imagePicker.modalPresentationStyle = .overFullScreen
imagePicker.delegate = self
//照片是否可以編輯
imagePicker.allowsEditing = true
//imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary 從相冊選擇照片
imagePicker.sourceType = UIImagePickerControllerSourceType.camera //拍照
//前置照相頭是否可用,可用即使用前置攝像頭,否則使用后置攝像頭
if UIImagePickerController.isCameraDeviceAvailable(UIImagePickerControllerCameraDevice.front) {
imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.front;
} else {
imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.rear;
}
//跳轉(zhuǎn)到拍照界面或相冊
self.present(imagePicker, animated: true, completion: nil)
}
4、添加回調(diào)函數(shù)
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
{
var image : UIImage!
if picker.allowsEditing {
image = info[UIImagePickerControllerEditedImage] as! UIImage
} else {
image = info[UIImagePickerControllerOriginalImage] as! UIImage
}
self.dismiss(animated: true) {
//拍照完成或選擇照片完成之后返回
//處理獲取到的照片等
}
}