一对一直播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开发,单次获得或上传一张相册里的照片实现的相关代码, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(164)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示