SwiftUI 照片/视频选择 PhotosPicker
所属分类:ios | 浏览:236 | 发布于 2025-04-08
SwiftUI提供了PhotosPicker组件用来选择照片/视频,在iOS16又提供了.photosPicker()修饰符来简化照片旋转流程。
1、PhotosPicker组件初体验
1.1、导入PhotosUI
1.2、创建PhotosPickerItem变量
1.3、调用PhotosPicker
1.4、完整代码
这样点击➕就可以选择照片了。
2、.photosPicker()修饰符
在iOS16、macOS13增加了.photosPicker()修饰符,作用同PhotosPicker()组件
2.1、创建一个presented变量
2.2、调用.photosPicker修饰符
2.3、完整代码
3、matching参数
matching的参数类型是 PHPickerFilter
4、选择照片处理
4.1、选择照片基本结构
后面的几个分支只是图片处理的方式不同,都写在Task{ }代码块里面。
4.2、方式一:Transferable选择Image
代码非常简单,多试几张图片之后,就会发现有的图片方向上下反了。实际上普通的照片会正常显示,如果是HDR照片,显示方向则会颠倒。
结论:SwiftUI 的 Image Transferable 只支持 PNG 类型的照片,如果是其它类型的照片,则可能丢失一些信息,比如 orientation 信息。
4.3、方式二:Transferable选择Data
把pickerImage类型由Image更改为UIImage
图片处理代码:
这种方式已经可以了,但是我们还可以再封装一下。
4.4、进阶,自定义Transferable, 自定义UIImageTransferable
调用:
4.5、进阶,自定义ImageTransferable
这个Transferable只是对上一个的进一步封装,将返回由UIImage变成了Image。
6、选择视频处理
视频需要自定义一个Transferable。