Lista de SwiftUI con múltiples columnas
Estoy buscando el equivalente de un bloque en línea html en swiftui. Básicamente, quiero que funcione exactamente como la lista, pero solo ajuste si va a exceder la línea, por ejemplo
WrappingList( items ) {
Text( "item.name")
}
pero lo estoy encontrando mucho más difícil de lo que pensaba. Realmente quiero que la lista de cosas traiga a la mesa, es decir, actualizaciones incrementales y desplazamiento, pero no puedo encontrar una manera de mapearlo en el estilo declarativo rápido. En los idiomas en los que agregó controles de forma procesal, es trivial:
current_x = 0
current_y = 0
foreach (var item in items )
{
control = create_control_for( item )
biggest_y = max( current_y + control.height, biggest_y)
if (control.width + current_x > width)
{
current_x=0;
current_y = biggest_y;
}
control.position = (current_x, current_y)
}
pero Swift parece querer hacer cosas en hstacks o vstacks y realmente no sé cómo hacerlo y aún así mantener las propiedades de una lista, particularmente sin saber el tamaño de las cosas de antemano, es decir, no quiero una cuadrícula fija .
¿Ya existe esa funcionalidad? Si no, ¿hay alguna forma de mapear la línea de código anterior en SwiftUI?
Respuestas
solo para que haya una respuesta aquí: el comentario anterior de asperi funcionó muy bien, vinculando a este artículo de desbordamiento de pila