es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ancho de contenido de TabView en SwiftUI

Estoy intentando agregar algunos elementos de contenido en TabView con estilo de página. ¿Es posible cambiar el ancho del contenido de TabView para que pueda mostrar una parte de la vista anterior y siguiente? Puedo hacerlo fácilmente con HStack o ScrollView, pero me pregunto si también puedo hacerlo con TabView, porque TabView tiene muchas características que necesito en este caso.

Mi código de prueba se ve así:

var body: some View {
    TabView {
        Group {
            ExcursionView(index: 1, count: 3)
            ExcursionView(index: 2, count: 3)
            ExcursionView(index: 3, count: 3)
        }
        .padding(.horizontal, 20)
    }
    .tabViewStyle(.page)
}

Diseño de Figma
Lo que tengo ahora

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible cambiar el ancho del contenido de TabView para mostrar una parte de la vista anterior y siguiente.

    Puede lograr esto configurando el tabViewStyle de TabView a PageTabViewStyle y agregando algunos contentInsets a las páginas. Aquí hay un ejemplo de código:

    TabView {
        // Sus páginas de TabView aquí
    }
    .tabViewStyle(PageTabViewStyle())
    .indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
    .contentInsets(.init(superior: 0, izquierdo: 16.0, inferior: 0, derecho: 16.0))
    

    En el código anterior, se agregan contentInsets a las páginas de TabView para ajustar el ancho del contenido. Puede ajustar el valor de los leading e trailing insets para mostrar más o menos de las vistas adyacentes.

    También tenga en cuenta que el PageIndexViewStyle se establece en .always para mostrar siempre los indicadores de página.

    ¡Espero que esto ayude! Hágamelo saber si tiene alguna pregunta.

Comments are closed.