Repolode
exyte

exyte/Grid

Контейнер сетки для SwiftUI на Swift, вдохновлённый CSS Grid: поддерживает гибкие, фиксированные и зависящие от содержимого треки, объединение ячеек и явное размещение.

Звёзды
2,124
Форки
101
Открытые issues
4
Последний коммит
вчера

Что это?

Grid — библиотека на Swift, добавляющая в SwiftUI контейнер для сеточной раскладки по модели CSS Grid. Она позволяет располагать представления в строках и столбцах, задавая размеры треков в фиксированных пунктах, гибких дробных единицах или в зависимости от содержимого. Встроенные стеки и ленивые сетки SwiftUI не поддерживают эту комбинацию размеров треков, объединения ячеек и управления размещением из коробки.

Элементы можно растягивать на несколько треков, размещать в заданных строках или столбцах и упаковывать в разреженном или плотном режиме. Контейнер поддерживает заполнение по строкам или столбцам, прокручиваемый режим и режим заполнения, выравнивание отдельных элементов и всей сетки, разные варианты интервалов и анимированные обновления. Представления также можно объединять с помощью GridGroup, а условные конструкции поддерживаются специальным result builder.

Библиотеку можно подключить через Swift Package Manager или CocoaPods. Она поддерживает iOS 14 и новее, macOS 10.15 и новее, а также tvOS. Лицензия — MIT.

Ключевые возможности

  • 01Размеры треков задаются в фиксированных пунктах, гибких единицах fr или в зависимости от содержимого
  • 02Представления можно растягивать на несколько строк или столбцов с помощью gridSpan
  • 03Явное размещение по строкам и столбцам с помощью gridStart
  • 04Заполнение по строкам или столбцам с разреженной или плотной упаковкой
  • 05Прокручиваемый режим и режим заполнения содержимым
  • 06Выравнивание отдельных элементов и всей сетки, а также анимированное обновление содержимого

Сценарии использования

  • Создание дашбордов и карточных раскладок в SwiftUI с сочетанием фиксированных и гибких столбцов
  • Создание сеток кнопок в стиле калькулятора или фотогалерей с объединёнными ячейками
  • Перенос концепций раскладки CSS Grid в нативные приложения для iOS или macOS

Быстрый старт

  1. 1

    Добавьте пакет через Swift Package Manager в Xcode, указав URL репозитория https://github.com/exyte/Grid

  2. 2

    Или добавьте pod в Podfile, если используете CocoaPods

    pod 'ExyteGrid'
  3. 3

    Используйте Grid(tracks: 3) и размещайте представления внутри его closure

Что важно знать

  • Требуются iOS 14.0 или новее либо macOS 10.15 или новее, а также Xcode 12 или новее, поэтому библиотека работает только на платформах Apple.
  • В обычном ViewBuilder можно разместить не более 10 представлений, поэтому для более крупных сеток нужен GridGroup.

В подборках

Темы

Частые вопросы

Что такое Grid?
Контейнер сетки для SwiftUI на Swift, вдохновлённый CSS Grid: поддерживает гибкие, фиксированные и зависящие от содержимого треки, объединение ячеек и явное размещение. Grid — библиотека на Swift, добавляющая в SwiftUI контейнер для сеточной раскладки по модели CSS Grid. Она позволяет располагать представления в строках и столбцах, задавая размеры треков в фиксированных пунктах, гибких дробных единицах или в зависимости от содержимого. Встроенные стеки и ленивые сетки SwiftUI не поддерживают эту комбинацию размеров треков, объединения ячеек и управления размещением из коробки.
Grid можно использовать бесплатно? Какая у него лицензия?
Grid распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
Grid всё ещё поддерживается?
Активно поддерживается. Последний коммит в Grid — 6 нояб. 2026 г..
Для чего можно использовать Grid?
Создание дашбордов и карточных раскладок в SwiftUI с сочетанием фиксированных и гибких столбцов Создание сеток кнопок в стиле калькулятора или фотогалерей с объединёнными ячейками Перенос концепций раскладки CSS Grid в нативные приложения для iOS или macOS
Как установить Grid?
Добавьте пакет через Swift Package Manager в Xcode, указав URL репозитория https://github.com/exyte/Grid Или добавьте pod в Podfile, если используете CocoaPods: pod 'ExyteGrid' Используйте Grid(tracks: 3) и размещайте представления внутри его closure
Где скачать Grid?
Исходный код и инструкции по установке — на GitHub: https://github.com/exyte/Grid

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Лёгкая библиотека на чистом Swift для загрузки, кэширования и отображения изображений из интернета в приложениях для iOS, macOS и SwiftUI.

24,4 тыс.+1 за неделю2,8 тыс.SwiftMITАктивно поддерживаетсяОбновлён 4 дня назад