iOS調(diào)用相機(jī)拍照或從相冊選擇照片

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) {
        //拍照完成或選擇照片完成之后返回 
        //處理獲取到的照片等
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容