Добавить объявление

SwiftUI: отступы для секций в List для iOS 26+

В SwiftUI появился долгожданный инструмент для точного контроля отступов в секциях List - модификатор listSectionMargins(). Теперь можно гибко настраивать отступы для отдельных секций, не прибегая к костылям.

Как это работает:


Модификатор принимает:

  • edges - стороны для отступов (по умолчанию .all).

  • length - величина отступа в точках.

Пример использования:


List {
Section("Новости") {
Text("Свежие обновления")
}
.listSectionMargins(.horizontal, 20) // Отступы по бокам

Section("Профиль") {
Text("Настройки")
}
.listSectionMargins(.top, 10) // Отступ сверху
}

Ключевые особенности:


  • Переопределяет стандартные отступы: заменяет дефолтные отступы, заданные стилем списка.

  • Работает с заголовками/подвалами: отступы применяются вокруг header и footer секции.

  • Гибкость: можно задавать для конкретных сторон (.horizontal, .vertical, .top и т.д.) или для всех сторон сразу (.all).

  • Не влияет на отступы между ячейками: для этого по-прежнему используем listRowSpacing.

До iOS 26 приходилось использовать:


  • Неочевидные комбинации padding() + listRowInsets().

  • Кастомные разделители.

  • Костыли с GeometryReader.


Теперь все решается одним модификатором!

listSectionMargins() - это отличное дополнение для тонкой настройки списков!
13.07.2025 7 398