Menu
Coddy logo textTech

ForEach

Часть раздела Введение в SwiftUI путешествия по Swift на Coddy. Урок 29 из 50.

ForEach создаёт одно представление для каждого элемента коллекции:

let fruits = ["Apple", "Banana", "Cherry"]

var body: some View {
    VStack {
        ForEach(fruits, id: \.self) { fruit in
            Text(fruit)
        }
    }
}

Замыкание получает каждый элемент и возвращает его представление. SwiftUI нужен способ отличать строки друг от друга, поэтому он запрашивает id. id: \.self использует само значение, что работает, когда все элементы различаются.

Диапазон чисел тоже подходит, без id:

ForEach(1..<4) { number in
    Text("Row \(number)")
}

Здесь показаны Row 1, Row 2 и Row 3: 1..<4 останавливается перед 4.

challenge icon

Задание

Легко

Покажите меню: внутри VStack используйте ForEach, чтобы создать по одному Text для каждого напитка в drinks, по порядку.

Попробуйте сами

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Введение в SwiftUI

Потренируйтесь самостоятельно: Песочница Swift