如何解决SwiftUI - 对 不完全是解决方案的解决方案
我有一个 .onTapGesture
修饰符,当点击它时会显示一个 ImagePicker
,然后立即关闭它。
@State private var updateInfo = false
var body: some View {
HStack {
placeholder.image
.resizable()
.aspectRatio(contentMode: .fill)
.font(.system(size: 16,weight: .medium))
.frame(width: 100,height: 100)
.clipShape(Circle())
.shadow(color: Color.black.opacity(0.1),radius: 1,x: 0,y: 1)
.onTapGesture {
updateInfo.showImagePicker = true
}
.sheet(isPresented: $updateInfo.showImagePicker) {
ImagePicker(showImagePicker: $updateInfo.showImagePicker,pickedImage: $updateInfo.image,imageData: $updateInfo.imageData)
}
}
}
这是我的 ImagePicker
import SwiftUI
struct ImagePicker: UIViewControllerRepresentable {
@Binding var showImagePicker: Bool
@Binding var pickedImage: Image
@Binding var imageData: Data
func makeUIViewController(context: UIViewControllerRepresentableContext<ImagePicker>) -> UIImagePickerController {
let imagePicker = UIImagePickerController()
imagePicker.delegate = context.coordinator
return imagePicker
}
func updateUIViewController(_ uiViewController: UIImagePickerController,context: Context) {
return
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
var parentimagePicker: ImagePicker
init(_ imagePicker: ImagePicker) {
self.parentimagePicker = imagePicker
}
func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediawithInfo info: [UIImagePickerController.InfoKey : Any]) {
let uiImage = info[UIImagePickerController.InfoKey.originalImage] as! UIImage
parentimagePicker.pickedImage = Image(uiImage: uiImage)
if let mediaimage = uiImage.jpegData(compressionQuality: 0.5) {
parentimagePicker.imageData = mediaimage
}
parentimagePicker.showImagePicker = false
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
parentimagePicker.showImagePicker = false
}
}
}
我一直在控制台中收到此错误:对 <_uiimagepickerplaceholderviewcontroller:>
的开始/结束外观转换的调用不平衡不确定我在哪里转换不正确。我有一个包含三个选项卡的选项卡栏视图。最后一个选项卡有一个导航栏项,用于推送详细信息 updateInfo
视图。
我点击占位符图像,系统会在立即关闭之前显示图像选择器控制器(有点)。我再次点击它,图像选择器控制器就会出现。
关于为什么它第一次被解雇的想法?
解决方法
不完全是解决方案的解决方案
我试图在视图上调用 ImagePickerController
并不断收到不平衡的视图错误。所以我创建了一个完全不同的视图来选择一个新图像。错误尚未解决,但我的问题已解决。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。