Elenco SwiftUI con più colonne

Aug 21 2020

Sto cercando l'equivalente di un blocco inline html in swiftui. Fondamentalmente voglio che funzioni esattamente come l'elenco, ma avvolgi solo se supererà la linea, ad es

WrappingList( items ) {
    Text( "item.name") 
}

ma lo trovo molto più difficile di quanto pensassi. Voglio davvero che l'elenco delle cose porti in tavola, ad esempio aggiornamenti incrementali e scorrimento, ma non riesco a trovare un modo per mapparlo nello stile dichiarativo rapido. Nelle lingue in cui hai aggiunto i controlli proceduralmente, è banale:

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)
}

ma swift sembra voler fare cose in hstacks o vstacks e non so davvero come farlo e mantenere comunque le proprietà di un elenco - in particolare senza conoscere in anticipo la dimensione delle cose - cioè non voglio una griglia fissa .

Tale funzionalità esiste già? In caso contrario, esiste un modo per mappare la riga di codice sopra in SwiftUI?

Risposte

DarrenOakey Sep 15 2020 at 08:15

solo così c'è una risposta qui - il commento sopra di asperi ha funzionato alla grande - collegamento a questo articolo di overflow dello stack