SwiftUI没办法自己获取系统相册内容,所以得依靠一下UIKit,头文件如下:

import SwiftUI
import UIKit

首先我们创建一个ImagePicker结构体供我们获取系统相册内容:

struct ImagePicker: UIViewControllerRepresentable {@Environment(\.presentationMode) private var presentationModelet sourceType: UIImagePickerController.SourceTypelet onImagePicked: (UIImage) -> Voidfinal class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate {@Binding private var presentationMode: PresentationModeprivate let sourceType: UIImagePickerController.SourceTypeprivate let onImagePicked: (UIImage) -> Voidinit(presentationMode: Binding<PresentationMode>,sourceType: UIImagePickerController.SourceType,onImagePicked: @escaping (UIImage) -> Void) {_presentationMode = presentationModeself.sourceType = sourceTypeself.onImagePicked = onImagePicked}func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {let uiImage = info[UIImagePickerController.InfoKey.originalImage] as! UIImageonImagePicked(uiImage)presentationMode.dismiss()}func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {presentationMode.dismiss()}}func makeCoordinator() -> Coordinator {return Coordinator(presentationMode: presentationMode,sourceType: sourceType,onImagePicked: onImagePicked)}func makeUIViewController(context: UIViewControllerRepresentableContext<ImagePicker>) -> UIImagePickerController {let picker = UIImagePickerController()picker.sourceType = sourceTypepicker.delegate = context.coordinatorreturn picker}func updateUIViewController(_ uiViewController: UIImagePickerController,context: UIViewControllerRepresentableContext<ImagePicker>) {}
}

然后我们就可以很简单地从系统相册中获取照片了:

struct ContentView: View {@State private var showImagePicker = false//这里的image用于放置等会获取的照片@State private var image: UIImage = UIImage()var body: some View {List{Button(action: {showImagePicker = true}, label: {Text("Select Image")})Image(uiImage: image).resizable().aspectRatio(contentMode: .fit)}.sheet(isPresented: $showImagePicker,content: {ImagePicker(sourceType: .photoLibrary) { image inself.image = image}})}
}

不过这样只能一次获取一张照片,但是我们也算可以获取了。

SwiftUI——如何获取系统相册的照片相关推荐

  1. Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册

    一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...

  2. iOS 获取系统相册

    在iOS开发中经常会用到相册的图片,但是原生的UIImagePikerViewDelegate只能选取一张照片进行处理,这样管理起来比较麻烦,所以本次带来获取系统所有相册. 首先建一个继承NSObje ...

  3. 获取iPhone相册的照片

    加入 AssetsLibrary.framework 导入头文件 #import 1.数据源,即所有相册的照片 if (!self.assets) {_assets = [[NSMutableArra ...

  4. iOS - 获取系统相册照片名称,路径以及各项信息

    最近做的项目 , 在我看来都停偏的 , 因为需要的都不仅仅是展示和业务逻辑 , 而主要都是网络和存储,文件,流媒体操作方面的东西 . 所以今天想要获取下照片的名称 , 还找了挺久的 . 以此记录下 , ...

  5. 获取手机相册中照片的地址,保存在手机中的URL(Swift 代码)

    1.第一步打开 相册,TZImagePickerController 这个框架之前讲过,不细说了 let vc = TZImagePickerController(maxImagesCount: 1, ...

  6. IOS 拍照,系统相册 拿照片地理位置,还有修改时间最新时间

    最近客户丧心病又狂地想要一个照片水印,哦,可以的呢,我想起了uiview变UIimage 的方法可以的 [objc] view plain copy <span style="font ...

  7. 获取系统相册图片进行九宫布局

    - (void)openCamera { NSLog(@"打开相机"); [self imagePickerControllerType:UIImagePickerControll ...

  8. Flutter 获取系统相册

    iOS需要再项目内配置plist文件,申请访问权 <key>NSPhotoLibraryUsageDescription</key> <string>Example ...

  9. iOS/swift之获取系统所有相册和照片录像、封装相册多选

    参考:http://www.hangge.com/blog/cache/detail_1512.html ios14 使用PHPicker获取相册(需要 import PhotosUI) 支持多选 支 ...

最新文章

  1. Openssl自签名证书
  2. linux 连接远程命令行,screen命令行远程连接
  3. 双层lstm每层有自己的权重参数吗_一幅图真正理解LSTM的物理结构
  4. java实现MD5加密
  5. 将SAP订单以XML格式输出
  6. 一些javascript免费中文书籍
  7. Python3异常处理
  8. 编程语言优缺点_R编程语言的优缺点
  9. ai建立使用图案_ai自定义图案的方法详解步骤图
  10. 新加坡教育(20181101)
  11. ubuntu16.04中如何将python3设置为默认
  12. 【干货】李航老师《统计学习方法》(第2版)清华PPT课件分享
  13. mess组网 中继_Mesh路由和无线中继的差距在哪里?谁才是更好的选择?
  14. Java常用框架面试题
  15. 美国服务器查询网站查询网站查询网站查询网站查询,全球DNS节点查询网
  16. WMware Mac 一些优化
  17. Sublime Text3 Build 3207破解
  18. 用HTML写手机QQ登录界面
  19. Visual Studio内存泄露检测工具
  20. 基于编码应用的主观全景视频质量评价数据库(译)

热门文章

  1. coreldrew计算机等级,全国计算机信息高新技术考试(CorelDRAW).doc
  2. pr(premiere)导出h.264显示“导出错误,创建编码器失败” 解决方法
  3. 淘宝/天猫API:item_question_answer-淘宝评论问答列表接口
  4. java jcombobox选择_java – 如何按值设置选定的索引JComboBox
  5. 微信分享外部链接添加图片与描述(服务器端:python)
  6. 英语语法第一节(句子结构)
  7. 苹果5s现在还能用吗_1821mAh能用吗?iPhone SE续航实测:苹果没说谎
  8. Android+webview+h5 拍照闪退问题
  9. 聊聊Netty那些事儿之从内核角度看IO模型
  10. 选择虚拟主机时需要考虑的因素