【问题标题】:How can I implement a pull down to dismiss a modal view in SwiftUI?如何在 SwiftUI 中实现下拉以关闭模式视图?
【发布时间】:2020-08-22 22:16:19
【问题描述】:

我正在显示一个模态图像选择器,并且希望能够在不点击角落的取消按钮的情况下关闭视图(通过像 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>) {
        
    }
}

【问题讨论】:

    标签: ios swift swiftui


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-06
      • 2023-02-22
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 2023-03-21
      • 1970-01-01
      • 2020-09-06
      相关资源
      最近更新 更多