SwiftUI: Cómo llamar a una función para rellenar un LazyVGrid

0

Pregunta

Estoy trabajando en algo de código en SwiftUI (el aprendizaje como puedo ir a donde yo estoy construyendo una rejilla vertical de los elementos (Esto está muy simplificado para los propósitos de esta pregunta):

let col1 = GridItem(alignment: .leading)
let col2 = GridItem(alignment: .trailing)

LazyVGrid(columns: [col1, col2]) {
    Text("C1")
    Text("C1")
    Text("C2")
    Text("C2")
}

Por lo tanto, obtener algo como esto:

+----+----+
| C1 | C1 |
+----+----+
| C2 | C2 |
+----+----+

Ahora en mi código me estoy haciendo algunas otras cosas así que me gustaría extracto de una función, así que mi código se ve algo como esto:

let col1 = GridItem(alignment: .leading)
let col2 = GridItem(alignment: .trailing)

LazyVGrid(columns: [col1, col2]) {
    row("C1")
    row("C2")
}

func row(text: String) -> ???? {
    Text(text)
    Text(text)
}

Pero me estoy dando cuenta que es difícil ver cómo hacerlo. Hace la función devuelve un array? o es que hay algún aspecto de Swift constructores puedo usar aquí? He intentado un array, pero LazyVGrid's construir no les gusta.

swiftui
2021-11-23 14:44:00
1

Mejor respuesta

3

La investigación de la @ViewBuilder atributo. Esto hace que la función se comportan como el cierre que está pasando a LazyVGrid y muchos de los SwiftUI Vistas.

@ViewBuilder
func row(text: String) -> some View {
    Text(text)
    Text(text)
}
2021-11-23 15:17:52

Por supuesto. Gracias.
drekka

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................