複数の列を持つSwiftUIリスト

Aug 21 2020

swiftuiのhtmlインラインブロックに相当するものを探しています。基本的にはリストとまったく同じように機能させたいのですが、行を超える場合は折り返すだけです。例:

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

でも思ったよりずっと大変だと思います。物事リストがテーブルにもたらすもの、つまり増分更新とスクロールが本当に必要ですが、それを迅速な宣言型スタイルにマッピングする方法が見つかりません。コントロールを手続き的に追加した言語では、それは簡単です。

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

しかし、swiftはhstacksまたはvstacksで何かをしたいと思っているようで、それをどのように行うのか本当にわかりませんが、リストのプロパティを保持します-特に事前に物事のサイズを知らなくても-つまり、固定グリッドは必要ありません。

そのような機能はすでに存在しますか?そうでない場合、上記のコード行をSwiftUIにマッピングする方法はありますか?

回答

DarrenOakey Sep 15 2020 at 08:15

ちょうどここに答えがあります-asperiからの上記のコメントはうまくいきました-このスタックオーバーフローの記事にリンクしています