实现iOS选择图片的流程及代码示例
流程表格
步骤 | 操作 |
---|---|
1 | 导入相册选择框架 |
2 | 请求用户授权访问相册 |
3 | 弹出相册选择界面 |
4 | 选择图片 |
5 | 返回选择的图片 |
操作步骤及代码示例
- 导入相册选择框架
// 在你的ViewController类中导入相册选择框架
import Photos
- 请求用户授权访问相册
// 请求相册访问权限
PHPhotoLibrary.requestAuthorization { (status) in
if status == .authorized {
// 用户已授权访问相册
} else {
// 用户未授权访问相册
}
}
- 弹出相册选择界面
// 弹出相册选择界面
let imagePicker = UIImagePickerController()
imagePicker.sourceType = .photoLibrary
imagePicker.delegate = self
self.present(imagePicker, animated: true, completion: nil)
- 选择图片
// 实现UIImagePickerControllerDelegate协议方法,处理用户选择图片的操作
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let pickedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
// 处理选择的图片
}
picker.dismiss(animated: true, completion: nil)
}
- 返回选择的图片
// 在处理选择的图片后,将其返回给需要使用的地方
// 可以将选择的图片赋值给一个UIImageView或者上传到服务器等操作
类图
classDiagram
class ViewController {
UIImagePickerControllerDelegate
imagePickerController(UIImagePickerController, didFinishPickingMediaWithInfo: [UIImagePickerController.InfoKey : Any])
}
class PHPhotoLibrary {
+ requestAuthorization(completionHandler: @escaping (PHAuthorizationStatus) -> Void)
}
class UIImagePickerController {
- sourceType
- delegate
- present(animated: Bool, completion: (() -> Void)?)
- dismiss(animated: Bool, completion: (() -> Void)?)
}
class UIImage {
+ UIImage
}
ViewController <|-- UIImagePickerControllerDelegate
ViewController "1" o-- "1" PHPhotoLibrary : uses
ViewController "1" o-- "1" UIImagePickerController : creates
UIImagePickerController <|-- UIImagePickerControllerDelegate
UIImagePickerController "1" o-- "1" UIImage
关系图
erDiagram
PHPhotoLibrary {
PHAuthorizationStatus
}
UIImagePickerController {
UIImagePickerController.InfoKey
}
ViewController {
UIImagePickerControllerDelegate
PHPhotoLibrary
UIImagePickerController
UIImage
}
通过上述步骤,你可以成功实现iOS选择图片的功能。希望这篇文章对你有帮助,祝你在iOS开发中取得更多进步!