SwiftUI实战-多图选择、图片选择器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI实战-多图选择、图片选择器相关的知识,希望对你有一定的参考价值。
参考技术A 主要实现多图选取,满足日常开发多图上传功能效果图
从 SwiftUI 中的图像选择器中选择图片后,无法单击“完成”按钮
【中文标题】从 SwiftUI 中的图像选择器中选择图片后,无法单击“完成”按钮【英文标题】:After selecting a picture from the image picker in SwiftUI, unable to click on 'Done' button 【发布时间】:2021-01-09 06:14:19 【问题描述】:从图片选择器中选择图片后,我无法点击“完成”按钮。谁能解释一下为什么?
struct AddTodoView: View
@Environment(\.managedObjectContext) private var viewContext
@Binding var showAddTodoView: Bool
@State private var displayImagePicker = false //
@State private var photoImage: Image?//
@State private var photoUIImage: UIImage?//
func getImage()//
if let image = photoUIImage
photoImage = Image(uiImage: image)
@State private var name: String = ""
@State private var selectedCategory = 0
var categoryTypes = ["family","personal","work"]
var body: some View
VStack
Text("Add Todo").font(.largeTitle)
TextField("To Do name",text: $name)
.textFieldStyle(RoundedBorderTextFieldStyle())
.border(Color.black).padding()
Text("Select Category")
Picker("",selection: $selectedCategory)
ForEach(0 ..< categoryTypes.count)
Text(self.categoryTypes[$0])
.pickerStyle(SegmentedPickerStyle())
//
Button("Select Photo")
self.displayImagePicker = true
.padding()//
photoImage?.resizable().scaledToFit()//
.padding()
.sheet(isPresented: $displayImagePicker, onDismiss: getImage)//
ImagePickerViewController(image: self.$photoUIImage)//
//
Button(action:
print("pressed")
,
label:
Text("Done")
)
似乎焦点再次从主视图转到图像选择器视图。即 Button 中的 print("pressed") 不会被调用。
下面是我的 ImagePickerViewController。
struct ImagePickerViewController: UIViewControllerRepresentable
@Binding var image: UIImage?
class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate
var parent: ImagePickerViewController
init(_ parent: ImagePickerViewController)
self.parent = parent
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info:[UIImagePickerController.InfoKey : Any])
if let uiImage = info[.originalImage] as? UIImage
parent.image = uiImage
picker.dismiss(animated: true)
func makeCoordinator() -> Coordinator
Coordinator(self)
func makeUIViewController(context: Context) -> some UIViewController
let imagePicker = UIImagePickerController()
imagePicker.delegate = context.coordinator
return imagePicker
func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context)
不知道出了什么问题。
【问题讨论】:
为避免猜测,请提供独立的可重现示例。 将 ImagePickerViewController 添加到我的原始帖子中。希望对您有所帮助! 在我的系统中完美运行。 在我选择一张照片后,选择器关闭,我无法点击“完成”。但如果我只是创建待办事项而不选择照片,我可以毫无问题地点击“完成”。仅当我选择照片时才会出现问题 对我来说很好。当我点击按钮时,“按下”出现在控制台日志中。这是您在代码中的唯一操作。 【参考方案1】:哦,是的,它工作正常。问题是由于另一行代码造成的。
【讨论】:
以上是关于SwiftUI实战-多图选择、图片选择器的主要内容,如果未能解决你的问题,请参考以下文章
react-native多图选择图片裁剪(支持ad/ios图片个数控制)