Sé que hay un comportamiento integrado en los modales en iOS que cuando los deslizas hacia abajo, el modal se despliega y se cierra. Pero me encuentro con un problema en el que el más mínimo desplazamiento hacia abajo en un ScrollView en un .popover lo cierra instantáneamente.

Estoy usando un .popover en este caso porque es un popover en la versión para Mac de mi aplicación, pero en iOS, por defecto es una hoja modal.

Esto es lo que sucede cuando me desplazo hacia abajo:

enter image description here

En el instante en que me desplazo hacia abajo, el modo se agita y se cierra. Aquí está el proyecto de muestra que ilustra eso:

import SwiftUI

struct ContentView: View {
  @State var showModal = false
  var body: some View {
    ZStack{
      Button("Open Sheet"){
        showModal = true
      }
    }
    .popover(isPresented: $showModal, arrowEdge: .bottom){
      ModalView(showModal: $showModal)
    }
  }
}

struct ModalView: View{
  @Binding var showModal: Bool
  var body: some View{
    ScrollView{
      VStack{
        Text("One")
        Text("Two")
        Text("Three")
      }
    }
    .frame(maxWidth: .infinity)
    .padding(20)
    .background(Color.gray)
  }
}

¿Hay algo que pueda hacer para evitar que la hoja / modal se cierre cuando desplazo mi ScrollView hacia abajo?

1
Clifton Labrum 13 mar. 2021 a las 10:13

1 respuesta

La mejor respuesta

Este es un error de SwiftUI. Se ha corregido en Xcode 12.5 beta.

1
subdan 13 mar. 2021 a las 09:44