iOS调用相机拍照或从相册选择照片

1、在info.plist中添加Privacy - Photo Library Usage Description、Privacy - Camera Usage Description两个字段,这两个字段用于获取系统相机和相册权限。如果没有获取权限调用相机或相册程序回出现crash

2、给viewController添加UIImagePickerControllerDelegate、 UINavigationControllerDelegate两个代理

3、调用相机或相册

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;
    }
    //跳转到拍照界面或相册
    self.present(imagePicker, animated: true, completion: nil)
}

4、添加回调函数

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) {
        //拍照完成或选择照片完成之后返回 
        //处理获取到的照片等
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容