ForEach
1. Với Identifiable
Phần tiêu đề “1. Với Identifiable”struct Item: Identifiable { let id = UUID() let name: String}
ForEach(items) { item in Text(item.name)}2. Với id Parameter
Phần tiêu đề “2. Với id Parameter”ForEach(["A", "B", "C"], id: \.self) { letter in Text(letter)}
ForEach(0..<5) { index in Text("Item \(index)")}3. Binding in ForEach
Phần tiêu đề “3. Binding in ForEach”struct TodoList: View { @State var todos: [Todo]
var body: some View { List { ForEach($todos) { $todo in Toggle(todo.title, isOn: $todo.isComplete) } } }}4. Indexed ForEach
Phần tiêu đề “4. Indexed ForEach”ForEach(Array(items.enumerated()), id: \.offset) { index, item in Text("\(index + 1). \(item.name)")}5. Trong Stacks
Phần tiêu đề “5. Trong Stacks”VStack { ForEach(items) { item in ItemRow(item: item) }}
HStack { ForEach(colors, id: \.self) { color in Circle().fill(color).frame(width: 30) }}6. Grid với ForEach
Phần tiêu đề “6. Grid với ForEach”let columns = [GridItem(.adaptive(minimum: 100))]
LazyVGrid(columns: columns) { ForEach(photos) { photo in Image(photo.name) .resizable() .aspectRatio(1, contentMode: .fill) }}📝 Tóm tắt
Phần tiêu đề “📝 Tóm tắt”// IdentifiableForEach(items) { item in }
// Custom idForEach(items, id: \.someProperty) { item in }
// RangeForEach(0..<10) { i in }
// BindingForEach($items) { $item in }