繁体   English   中英

如何在 SwiftUI 中实现下拉以关闭模态视图?

[英]How can I implement a pull down to dismiss a modal view in SwiftUI?

我正在显示一个模态图像选择器,并且希望能够在不单击角落的取消按钮的情况下关闭视图(通过像 UIKit 一样下拉)。

我的图像选择器与此一起显示。

.sheet(isPresented: $isShowPhotoLibrary) {
    ImagePicker(sourceType: .photoLibrary)
}

并像这样实例化......

struct ImagePicker: UIViewControllerRepresentable {
    
    var sourceType: UIImagePickerController.SourceType = .photoLibrary
    
    func makeUIViewController(context: UIViewControllerRepresentableContext<ImagePicker>) -> UIImagePickerController {
        
        // Return an instance of UIImagePickerController
        let imagePicker = UIImagePickerController()
        imagePicker.allowsEditing = false
        imagePicker.sourceType = sourceType
        
        return imagePicker
    }
    
    func updateUIViewController(_ uiViewController: UIImagePickerController, context: UIViewControllerRepresentableContext<ImagePicker>) {
        
    }
}

UIImagePickerController覆盖整个工作表的区域并且不允许处理拖动,因此,作为一种解决方法,一种可能的方法是添加某种凹口(概念是可识别的,因此可用性会很清楚)

这是一个演示(您可以根据您的应用程序设计构建样式/背景)

VStack(spacing: 0) {
    RoundedRectangle(cornerRadius: 2)
        .frame(width: 60, height: 4).foregroundColor(.gray)
        .padding(.vertical, 4)
    ImagePicker(sourceType: .photoLibrary)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM