どうも、ちょげ(@chogetarou)です。
リストの行を配列で生成する方法を紹介します。
方法

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)
}
}
コメント