Repolode
exyte

exyte/Grid

CSS Gridに着想を得たSwiftUI用グリッドコンテナ。柔軟・固定・コンテンツサイズのトラック、複数トラックへのまたがり、明示的な配置に対応します。

スター
2,124
フォーク
101
未解決の Issue
4
最終コミット
昨日

これは何?

Gridは、CSS GridをモデルにしたSwiftUI向けのグリッドレイアウトコンテナを提供するSwiftライブラリです。ビューを行または列に配置し、トラックサイズを固定ポイント、柔軟なfr単位、コンテンツに基づくサイズで指定できます。SwiftUI標準のスタックやLazy Gridでは、こうしたトラックサイズ指定に加え、複数トラックへのまたがりや配置の制御を一括して利用できません。

アイテムは複数のトラックにまたがって配置でき、行または列の位置を明示的に指定したり、sparseまたはdenseで詰めて配置したりできます。行方向または列方向への拡張、スクロールまたはコンテンツを埋めるモード、アイテム単位およびグリッド全体の整列、間隔の設定、アニメーション付きの更新に対応しています。GridGroupでビューをグループ化でき、カスタムresult builderを使った条件文にも対応します。

Swift Package ManagerまたはCocoaPodsで導入でき、iOS 14以降、macOS 10.15以降、tvOSを対象としています。ライセンスはMITです。

主な機能

  • 01固定ポイント、柔軟なfr単位、またはコンテンツに基づくサイズでトラックを指定
  • 02gridSpanでビューを複数の行または列にまたがって配置
  • 03gridStartで行と列の位置を明示的に指定
  • 04sparseまたはdenseの詰め方で行方向または列方向に配置
  • 05スクロールおよびコンテンツを埋めるモード
  • 06アイテム単位およびグリッド全体の整列と、アニメーション付きのコンテンツ更新

ユースケース

  • 固定列と柔軟な列を組み合わせたSwiftUIのダッシュボードやカードレイアウトの構築
  • 複数のセルにまたがるアイテムを含む、電卓風のボタングリッドやフォトギャラリーの作成
  • CSS Gridのレイアウト概念をネイティブのiOSまたはmacOSアプリに取り入れる

クイックスタート

  1. 1

    XcodeでリポジトリURL https://github.com/exyte/Grid を使い、Swift Package Manager経由でパッケージを追加します

  2. 2

    または、CocoaPodsの場合はPodfileにpodを追加します

    pod 'ExyteGrid'
  3. 3

    Grid(tracks: 3)のクロージャ内にビューを配置してレイアウトします

使う前に知っておきたいこと

  • iOS 14.0以降またはmacOS 10.15以降、およびXcode 12以降が必要なため、Appleプラットフォームのみで利用できます。
  • 通常のViewBuilder内に配置できるビューは10個までのため、大きなグリッドにはGridGroupが必要です。

収録されている特集

トピック

よくある質問

Grid とは?
CSS Gridに着想を得たSwiftUI用グリッドコンテナ。柔軟・固定・コンテンツサイズのトラック、複数トラックへのまたがり、明示的な配置に対応します。 Gridは、CSS GridをモデルにしたSwiftUI向けのグリッドレイアウトコンテナを提供するSwiftライブラリです。ビューを行または列に配置し、トラックサイズを固定ポイント、柔軟なfr単位、コンテンツに基づくサイズで指定できます。SwiftUI標準のスタックやLazy Gridでは、こうしたトラックサイズ指定に加え、複数トラックへのまたがりや配置の制御を一括して利用できません。
Grid は無料で使えますか?ライセンスは?
Grid は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
Grid は今もメンテナンスされていますか?
活発にメンテナンス中。Grid の最終コミットは 2026年11月6日 です。
Grid は何に使えますか?
固定列と柔軟な列を組み合わせたSwiftUIのダッシュボードやカードレイアウトの構築 複数のセルにまたがるアイテムを含む、電卓風のボタングリッドやフォトギャラリーの作成 CSS Gridのレイアウト概念をネイティブのiOSまたはmacOSアプリに取り入れる
Grid のインストール方法は?
XcodeでリポジトリURL https://github.com/exyte/Grid を使い、Swift Package Manager経由でパッケージを追加します または、CocoaPodsの場合はPodfileにpodを追加します: pod 'ExyteGrid' Grid(tracks: 3)のクロージャ内にビューを配置してレイアウトします
Grid はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/exyte/Grid

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト