You will commonly need to iterate through similar views and display them in SwiftUI. For e.g. similar to the image shown below.
![](https://i0.wp.com/redflowerinc.com/wp-content/uploads/2021/05/Screen-Shot-2021-05-25-at-11.38.07-PM-616x1024.png?resize=462%2C768&ssl=1)
Normally we would use ForEach to iterate and display them. ForEach is a structure that computes views on demand from an underlying collection of identified data. In order to make it work, you must provide a unique id. Either the collection’s elements must conform to Identifiable
or you need to provide an id
parameter to the ForEach
initializer. Below is the snippet of code, I use to iterate through them. I use an unique id here.
import SwiftUI
struct Letter : View {
var id = UUID()
var body: some View {
Text("standby text")
Text("Unique identifier\(UUID())")
Text("standy text")
}
}
struct CameraUIView: View {
var letters : [Letter] = [Letter(), Letter(), Letter(), Letter()]
var body: some View {
VStack(alignment: .leading) {
Text("This text is in the main view. Appears once.")
ForEach(letters, id: \.id) { letter in
letter
Spacer()
}
}
}
}
struct CameraUIView_Previews: PreviewProvider {
static var previews: some View {
CameraUIView()
}
}
This coding style can be helpful when you have a View with multiple subcomponents you wouldn’t want to copy paste.
Leave a Reply