SwiftUI——如何获取系统相册的照片
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——如何获取系统相册的照片相关推荐
- Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册
一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...
- iOS 获取系统相册
在iOS开发中经常会用到相册的图片,但是原生的UIImagePikerViewDelegate只能选取一张照片进行处理,这样管理起来比较麻烦,所以本次带来获取系统所有相册. 首先建一个继承NSObje ...
- 获取iPhone相册的照片
加入 AssetsLibrary.framework 导入头文件 #import 1.数据源,即所有相册的照片 if (!self.assets) {_assets = [[NSMutableArra ...
- iOS - 获取系统相册照片名称,路径以及各项信息
最近做的项目 , 在我看来都停偏的 , 因为需要的都不仅仅是展示和业务逻辑 , 而主要都是网络和存储,文件,流媒体操作方面的东西 . 所以今天想要获取下照片的名称 , 还找了挺久的 . 以此记录下 , ...
- 获取手机相册中照片的地址,保存在手机中的URL(Swift 代码)
1.第一步打开 相册,TZImagePickerController 这个框架之前讲过,不细说了 let vc = TZImagePickerController(maxImagesCount: 1, ...
- IOS 拍照,系统相册 拿照片地理位置,还有修改时间最新时间
最近客户丧心病又狂地想要一个照片水印,哦,可以的呢,我想起了uiview变UIimage 的方法可以的 [objc] view plain copy <span style="font ...
- 获取系统相册图片进行九宫布局
- (void)openCamera { NSLog(@"打开相机"); [self imagePickerControllerType:UIImagePickerControll ...
- Flutter 获取系统相册
iOS需要再项目内配置plist文件,申请访问权 <key>NSPhotoLibraryUsageDescription</key> <string>Example ...
- iOS/swift之获取系统所有相册和照片录像、封装相册多选
参考:http://www.hangge.com/blog/cache/detail_1512.html ios14 使用PHPicker获取相册(需要 import PhotosUI) 支持多选 支 ...
最新文章
- Openssl自签名证书
- linux 连接远程命令行,screen命令行远程连接
- 双层lstm每层有自己的权重参数吗_一幅图真正理解LSTM的物理结构
- java实现MD5加密
- 将SAP订单以XML格式输出
- 一些javascript免费中文书籍
- Python3异常处理
- 编程语言优缺点_R编程语言的优缺点
- ai建立使用图案_ai自定义图案的方法详解步骤图
- 新加坡教育(20181101)
- ubuntu16.04中如何将python3设置为默认
- 【干货】李航老师《统计学习方法》(第2版)清华PPT课件分享
- mess组网 中继_Mesh路由和无线中继的差距在哪里?谁才是更好的选择?
- Java常用框架面试题
- 美国服务器查询网站查询网站查询网站查询网站查询,全球DNS节点查询网
- WMware Mac 一些优化
- Sublime Text3 Build 3207破解
- 用HTML写手机QQ登录界面
- Visual Studio内存泄露检测工具
- 基于编码应用的主观全景视频质量评价数据库(译)
热门文章
- coreldrew计算机等级,全国计算机信息高新技术考试(CorelDRAW).doc
- pr(premiere)导出h.264显示“导出错误,创建编码器失败” 解决方法
- 淘宝/天猫API:item_question_answer-淘宝评论问答列表接口
- java jcombobox选择_java – 如何按值设置选定的索引JComboBox
- 微信分享外部链接添加图片与描述(服务器端:python)
- 英语语法第一节(句子结构)
- 苹果5s现在还能用吗_1821mAh能用吗?iPhone SE续航实测:苹果没说谎
- Android+webview+h5 拍照闪退问题
- 聊聊Netty那些事儿之从内核角度看IO模型
- 选择虚拟主机时需要考虑的因素