Mostrando la superposición alineada en la parte inferior.
Quiero superponer una “Vista” sobre otra cuando toco un botón.
El siguiente es mi código:
import SwiftUI
struct SheetView: View {
@State private var showSheet: Bool = false
var body: some View {
NavigationView {
VStack {
ZStack {
Rectangle()
.fill(Color.orange)
.frame(height: 32.0)
Button("Por favor seleccione una dirección de correo") {
showSheet.toggle()
}.foregroundColor(Color.black)
}
Spacer()
}
.navigationBarTitleDisplayMode(.inline)
.navigationViewStyle(StackNavigationViewStyle())
}
.overlay(popOver)
}
var popOver: some View {
Group {
if showSheet {
ZStack {
Color.black.opacity(0.4).ignoresSafeArea()
ZStack {
Rectangle()
.fill(Color.white)
//.frame(width: UIScreen.main.bounds.width, height: 400)
.frame(maxWidth: .infinity, maxHeight: 320.0, alignment: .bottom)
//.position(x: UIScreen.main.bounds.width / 2.0, y: 600)
}
}.onTapGesture {
showSheet.toggle()
}
}
}
}
}
Y se ve como la siguiente imagen. Obtiene casi todo lo que necesito, excepto que la “Vista” superpuesta aparecerá en el centro. ¿Cómo puedo hacer que aparezca alineada en la parte inferior de la “Vista”?
davy.ai
Para alinear la vista superpuesta en la parte inferior de la vista inferior, puedes usar la guía de alineación
.bottom
. Modifica la propiedadpopOver
enSheetView
de la siguiente manera: