Closed3

swiftUIのListを見てみる

mtkw0127mtkw0127
List {
    Text("りんご")
    Text("みかん")
    Text("メロン")
}

こういうコードを書くと以下のようなUIが作れる。

HIGにもListというのが定義されている。
https://developer.apple.com/design/human-interface-guidelines/lists-and-tables

テーブルやリストは、グループや階層で編成されたデータを表すことができ、選択、追加、削除、並び替えなどのユーザーインタラクションをサポートすることができます。 すべてのプラットフォームのアプリとゲームは、コンテンツとオプションを表示するためにテーブルを使用できます。多くのアプリは、全体的な情報階層を表現し、人々がそれをナビゲートするのを助けるためにリストを使用します。 例えば、iOSの「設定」は、リストの階層を使用して、ユーザーがオプションを選択できるようにしています。また、iPadOSやmacOSの「メール」など、いくつかのアプリは、スプリットビュー内でテーブルを使用しています。

Listには追加・選択・削除・並び替え等のユーザ操作がサポートされているらしい。

mtkw0127mtkw0127

Listの中でDynamicViewContentを生成し、DynamicViewContentでonDelete, onMove, onInsertを定義すると動く。

色んなブログとかから拝借したコード。
並び替え移動できるし、スワイプで削除できるし、Dragで追加もできる。

        VStack {
            NavigationView {
                List {
                    ForEach(fruits, id: \.self) { fruit in
                        Text(fruit)
                    }
                    .onDelete(perform: deleteFruits)
                    .onMove(perform: {_, _ in })
                    .onInsert(of: [UTType.plainText], perform: { index, items in
                        fruits.insert("new", at: index)
                    })
                }
                .toolbar {
                    EditButton()
                }
            }
            
            Text("DragMe")
                    .onDrag {
                        return NSItemProvider(item: "DragMe" as NSString, typeIdentifier: UTType.plainText.identifier)
                    }
        }
このスクラップは2024/08/23にクローズされました