Dan*_*iel 2 macos ios swift swiftui
我可以使用 iOS 16 / macOS Ventura 中的新 PhotosPicker 获取图像数据。这是我所做的:
PhotosPicker(selection: $selectedPhotosPickerItems, matching: .any(of: [.images]), photoLibrary: .shared()) {
Text("Select photos")
}
.onChange(of: selectedPhotosPickerItems) { newItems in for newItem in newItems {
Task {
if let data = try? await newItem.loadTransferable(type: Data.self) {
... = UIImage(data: data)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我需要有关这张照片的更多信息。如果我能以某种方式获取 PHAsset,那就太棒了,或者至少是原始创建日期。PHAsset 不符合 Transferable。有没有办法只知道图像数据来获取 PHAsset?也许用哈希?
我们在结果项中有标识符,因此可以获取相应的PHAsset.
这是单个选择项的简化演示(假设 Info.plist 已更新且授权请求已完成)。
.onChange(of: selectedPhotosPickerItem) { newItem in
if let newItem, let localID = newItem.itemIdentifier {
let result = PHAsset.fetchAssets(withLocalIdentifiers: [localID], options: nil)
if let asset = result.firstObject {
print("Got " + asset.debugDescription)
}
Run Code Online (Sandbox Code Playgroud)
*此处 iOS/macOS 方法相同
| 归档时间: |
|
| 查看次数: |
1763 次 |
| 最近记录: |