Я знаю, что SwiftUI в настоящее время не поддерживает регулярные циклы, но вместо этого предоставляет что-то, называемое ForEach, но в чем разница между этим и списком?
ForEach - это представление, которое позволяет передать коллекцию данных инициализатору, а затем создать несколько «подпредставлений» из предоставленного вами замыкания.Он не имеет никакой семантики того, как будут организованы представления.
ForEach
ForEach(1...5) { row in Text("Row \(row)") }
создаст эквивалент off
Text("Row 1") Text("Row 2") Text("Row 3") Text("Row 4") Text("Row 5")
, завернутый в одинконтейнерное представление.
List - это представление, которое может составлять несколько представлений вместе, но не обязательно представления одного и того же типа.Вы можете просто добавить несколько представлений без цикла.
List
List { Image("avatar") Text("Title") Button(action: { print("Button tapped!") }) { Text("Energize!") } }
Для удобства инициализатор List позволяет использовать его так же, какForEach, если вы хотите иметь список, состоящий только из одного типа ячеек.
List(1...5) { row in Text("Row \(row)") }
Список имеет особый вид в зависимости от платформы.Например, в iOS список будет отображаться как табличное представление и вставлять разделительные линии между его вертикально расположенными представлениями.
Вы можете использовать ForEach представления внутри List представлений, чтобы иметь как динамический, так и статический контент - aочень мощная функция SwiftUI .
List { Text("Food") ForEach(meals) { meal in Text(meal.name) } Text("Drinks") ForEach(drinks) { drink in Text(drink.name) } }