一对一直播app开发,单次获得或上传一张相册里的照片
一对一直播app开发,单次获得或上传一张相册里的照片实现的相关代码
SwiftUI没办法自己获取系统相册内容,所以得依靠一下UIKit,头文件如下:
1 | <br>import SwiftUI<br>import UIKit |
首先我们创建一个ImagePicker结构体供我们获取系统相册内容:
1 | <br>struct ImagePicker: UIViewControllerRepresentable {<br> @Environment(\.presentationMode) private var presentationMode<br> let sourceType: UIImagePickerController.SourceType<br> let onImagePicked: (UIImage) -> Void<br> <br> final class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate {<br> <br> @Binding private var presentationMode: PresentationMode<br> private let sourceType: UIImagePickerController.SourceType<br> private let onImagePicked: (UIImage) -> Void<br> <br> init(presentationMode: Binding<PresentationMode>,<br> sourceType: UIImagePickerController.SourceType,<br> onImagePicked: @escaping (UIImage) -> Void) {<br> _presentationMode = presentationMode<br> self.sourceType = sourceType<br> self.onImagePicked = onImagePicked<br> }<br> <br> func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {<br> let uiImage = info[UIImagePickerController.InfoKey.originalImage] as ! UIImage<br> onImagePicked(uiImage)<br> presentationMode.dismiss()<br> }<br> <br> func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {<br> presentationMode.dismiss()<br> }<br> <br> }<br> <br> func makeCoordinator() -> Coordinator {<br> return Coordinator(presentationMode: presentationMode,<br> sourceType: sourceType,<br> onImagePicked: onImagePicked)<br> }<br> <br> func makeUIViewController(context: UIViewControllerRepresentableContext<ImagePicker>) -> UIImagePickerController {<br> let picker = UIImagePickerController()<br> picker.sourceType = sourceType<br> picker.delegate = context.coordinator<br> return picker<br> }<br> <br> func updateUIViewController(_ uiViewController: UIImagePickerController,<br> context: UIViewControllerRepresentableContext<ImagePicker>) {<br> }<br>} |
然后我们就可以很简单地从系统相册中获取照片了:
1 | <br>struct ContentView: View {<br> @State private var showImagePicker = false<br> //这里的image用于放置等会获取的照片<br> @State private var image: UIImage = UIImage()<br> var body: some View {<br> List{<br> Button(action: {<br> showImagePicker = true<br> }, label: {<br> Text("Select Image")<br> })<br> <br> Image(uiImage: image)<br> .resizable()<br> .aspectRatio(contentMode: .fit)<br> }<br> .sheet(isPresented: $showImagePicker,<br> content: {<br> ImagePicker(sourceType: .photoLibrary) { image in<br> self.image = image<br> }<br> })<br> }<br>} |
以上就是一对一直播app开发,单次获得或上传一张相册里的照片实现的相关代码, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现