SwiftUIにはForEachという構造体(struct)があります。このForEachはIdentifiedデータを用いてオンデマンドでViewを再構築してくれます。ForEach
イニシャライザにid
パラメータを提供する必要があります。
数字をカウントさせてTextに埋める場合のコード例
var body: some View { VStack{ ForEach(0..<10){_i in Text("\(_i)") } } }
文字配列を使ったForEachコード例
var body: some View { VStack{ ForEach(["不思議の国のトムキンス","すばらしい新世界"], id: \.self){ Text($0) } } }
Identifiable構造体の配列を使ったForEachコード例
struct Hoge: Identifiable{ var id = UUID() var value : String }
上記のようなIdentifiable継承したstructを使った配列はForEachで利用可能です
struct ContentView: View { @State var hogeList:[Hoge] = [Hoge(value: "Aldous Leonard Huxley"),Hoge(value: "James Patrick Hogan")] var body: some View { VStack{ ForEach(hogeList){_i in let hoge: String = _i.value Text("\(hoge)") } } } }