[SwiftUI]リスト(List)を配列で生成するには?

SwiftUI

どうも、ちょげ(@chogetarou)です。

リストの行を配列で生成する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Listを配列で生成するには、Identifiableプロトコルを使います。

まず、Identifiableプロトコルに準拠した構造体を用意します。

構造体には、idプロパティと配列の要素で使うプロパティを指定します。

struct Fruit : Identifiable {
    let id = UUID() //必須
    let name : String //配列の要素で使うプロパティ
}

次に、用意した構造体の配列を用意します。

let fruits = [
   Fruit(name: "Apple"),
   Fruit(name: "Banana"),
   Fruit(name: "Grape")
]

最後に、Listの引数に用意した配列を指定します。

また、配列のクロージャーの初めに、配列の要素を受け取る引数を指定します。

List(fruits) { fruit in
    //リストの要素
    //fruitで配列から取り出した値を使える
}

使用例

以下は、使用例です。

struct ContentView: View {
    let fruits = [
        Fruit(name: "Apple"),
        Fruit(name: "Banana"),
        Fruit(name: "Grape")
    ]
    var body: some View {
        List(fruits) { fruit in
            FruitRow(fruit: fruit)
        }
    }
}

struct Fruit : Identifiable {
    let id = UUID()
    let name : String
}

struct FruitRow : View {
    var fruit : Fruit
    var body: some View {
        Text(fruit.name)
    }
}

コメント

タイトルとURLをコピーしました