【发布时间】:2019-07-19 10:17:23
【问题描述】:
我尝试制作一个符合 UIViewRepresentable 并实现 makeUIView 和 updateUIView 的 SwiftUI 类。 但无法完成。这是代码:
代码:
struct ImagePicker : UIViewRepresentable {
@Binding var image: UIImage
class Coordinator: NSObject, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@Binding var image: UIImage
init(image: Binding<UIImage>) {
$image = image
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let possibleImage = info[.editedImage] as? UIImage {
image = possibleImage
} else if let possibleImage = info[.originalImage] as? UIImage {
image = possibleImage
} else {
}
}
}
func makeCoordinator() -> Coordinator {
return Coordinator(image: $image)
}
func makeUIView(context: UIViewRepresentableContext<ImagePicker>) -> UIImageView {
let imageview = UIImageView()
let picker = UIImagePickerController()
picker.delegate = context.coordinator
return imageview
}
func updateUIView(_ uiView: UIImageView,
context: UIViewRepresentableContext<ImagePicker>) {
uiView.image = image
}
}
我尝试使用 imagePicker 作为控件但无法使用。
【问题讨论】:
-
我有一个工作版本的
UIImagePickerController。查看您的代码,您已经接近了。但。首先,“它不起作用”是什么意思。 (更多细节会有所帮助。)接下来,我的版本基于对这个问题的公认答案:stackoverflow.com/questions/56515871/… 但最后 - 抱歉大喊大叫 - 我的版本,那个版本,我猜你的版本都坏了在三天前发布的 beta 4 中。你运行的是什么版本的? -
感谢您的回复。你的答案对我有用。
标签: swift uiimagepickercontroller swiftui