Barra invisible de Swiftui en la parte superior de la pantalla.
Tengo el siguiente problema.
Si intento darle un color a una vista (por ejemplo Color.red)
Obtengo la siguiente salida:
Puedo simplemente agregar .edgesignoressafearea(.top) y la parte superior también se pone roja. Pero cuando quiero agregar un elemento cliqueable, el usuario no podrá hacer clic en él ya que aún hay una barra invisible en la parte superior de la pantalla. ¿Alguien sabe cuál es mi problema? El problema está en todas las vistas tabulables (Línea de tiempo, Favoritos, Descubrir, Cuenta). Entonces debe estar en el primer código o en la vista de pestaña (segundo código) que envío en esta publicación.
Cuando el usuario hace clic en la aplicación, primero obtienen esta vista que lo envía a la vista de inicio de sesión o a la propia aplicación:
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: tabView().navigationBarHidden(true), isActive: $tabview, label: { EmptyView() })
NavigationLink(destination: loginView().navigationBarHidden(true), isActive: $login, label: { EmptyView() })
if tabview == false && login == false {
Text("cargando")
.onAppear(perform: checklogin)
}
}
.navigationBarBackButtonHidden(true)
.navigationBarHidden(true)
}
}
Luego, la aplicación los envía a la vista de pestañas:
var body: some View {
TabView(selection: $selection) {
Timeline()
.tabItem {
Label(“línea de tiempo”, systemImage: “house”)
}
.tag(0)
Favoritos()
.tabItem {
Label("favoritos", systemImage: "heart")
}
.tag(1)
Descubrir()
.tabItem {
Label("descubrir", systemImage: "network")
}
.tag(2)
Cuenta()
.tabItem {
Label("cuenta", systemImage: "person")
}
.tag(3)
}
.navigationBarBackButtonHidden(true)
.navigationBarHidden(true)
}
El problema ocurre en todas estas vistas.
Esta es la vista donde hice la captura de pantalla:
var body: some View {
ZStack {
Color.red
Text(“¡Hola favoritos!”)
}
.navigationBarBackButtonHidden(true)
.navigationBarHidden(true)
}
davy.ai
Parece que el problema es causado por la
NavigationView
en el primer código. LaNavigationView
agrega unsafeArea
a la vista, lo que está causando que aparezca la barra blanca. Para solucionar esto, puedes agregar.edgesIgnoreSafeArea(.top)
a laNavigationView
en el primer código. Esto hará que elsafeArea
no aparezca en la parte superior de la vista, y la barra blanca debería desaparecer.