我是 SwiftUI 新手。我想制作一个具有图像选择器的应用程序。
\n我找到这篇文章: https: //ishtiz.com/swiftui/image-picker-in-swiftui
\n它说:
\n\n\n要在 SwiftUI 中实现图像选择器,您可以使用
\nImagePicker
SwiftUI 框架提供的结构体。该结构有一个pickImage()
方法,可以向用户呈现图像选择器,并将所选图像作为 UIImage 对象返回。
提供此示例代码:
\nstruct ContentView: View {\n @State private var image: UIImage?\n var body: some View {\n VStack {\n if image != nil {\n Image(uiImage: image!)\n .resizable()\n .scaledToFit()\n }\n Button("Select Image") {\n self.image = ImagePicker.pickImage()\n }\n }\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n我将代码添加到我的项目中,但它没有\xe2\x80\x99t 构建:
\n\n\n在范围内找不到“ImagePicker”
\n
我需要进口一些东西吗?
\n尝试导入 PhotosUI
对于低于 16.0 的 iOS 版本,您可以参考教程
对于 iOS 16.0 + 您可以使用PhotoPicker
import PhotosUI
import SwiftUI
@available(iOS 16.0, *)
struct PhotosPickerDemo: View {
@State private var selectedItem: PhotosPickerItem? = nil
@State private var selectedImageData: Data? = nil
var body: some View {
PhotosPicker(
selection: $selectedItem,
matching: .images,
photoLibrary: .shared()) {
Text("Select a photo")
}
.onChange(of: selectedItem) { newItem in
Task {
// Retrieve selected asset in the form of Data
if let data = try? await newItem?.loadTransferable(type: Data.self) {
selectedImageData = data
}
}
}
if let selectedImageData,
let uiImage = UIImage(data: selectedImageData) {
Image(uiImage: uiImage)
.resizable()
.scaledToFit()
.frame(width: 250, height: 250)
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4313 次 |
最近记录: |