为 macOS 应用添加用户可自定义全局快捷键的 Swift 包,内置快捷键录制界面。
exyte/Grid
受 CSS Grid 启发的 SwiftUI 网格容器,支持弹性、固定和内容自适应列宽、跨行列及精确定位。
- Star
- 2,124
- Fork
- 101
- 未关闭 Issue
- 4
- 最近提交
- 昨天
这是什么?
Grid 是一个为 SwiftUI 提供的网格布局容器,设计思路参考了 CSS Grid。开发者可以用固定点数、弹性比例单位(fr)或内容自适应的方式定义列宽和行高,并按行或按列排列视图。SwiftUI 自带的堆栈和惰性网格并不直接支持这些轨道尺寸、跨格和位置控制的组合。
单个视图可以跨越多个行列,也可以指定明确的行或列起始位置,并支持稀疏和紧凑两种自动填充策略。容器支持按行或按列增长,内容可滚动或填满父视图,并可设置单项及整体对齐、间距,以及带动画的内容更新。此外,还可通过 GridGroup 对视图分组,并借助自定义的结果构建器使用条件语句。
该库可通过 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
在 Xcode 中通过 Swift Package Manager 添加仓库 URL https://github.com/exyte/Grid
- 2
或在 Podfile 中添加 CocoaPods 依赖
pod 'ExyteGrid' - 3
使用 Grid(tracks: 3) 并在闭包中放置视图来完成布局
使用前须知
- 需要 iOS 14.0+ 或 macOS 10.15+ 以及 Xcode 12+,仅适用于苹果平台。
- ViewBuilder 中的视图数量上限为 10 个,更大的网格需要使用 GridGroup。
收录于专题
标签
常见问题
- Grid 是什么?
- 受 CSS Grid 启发的 SwiftUI 网格容器,支持弹性、固定和内容自适应列宽、跨行列及精确定位。 Grid 是一个为 SwiftUI 提供的网格布局容器,设计思路参考了 CSS Grid。开发者可以用固定点数、弹性比例单位(fr)或内容自适应的方式定义列宽和行高,并按行或按列排列视图。SwiftUI 自带的堆栈和惰性网格并不直接支持这些轨道尺寸、跨格和位置控制的组合。
- Grid 可以免费使用吗?用的什么许可证?
- Grid 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- Grid 还在维护吗?
- 活跃维护中。Grid 最近一次提交是在 2026年11月6日。
- Grid 适合用来做什么?
- 在 SwiftUI 中构建混合固定与弹性列宽的仪表盘或卡片布局 制作计算器式按钮网格或带跨格项目的图片墙 将 CSS Grid 的布局思路移植到原生 iOS 或 macOS 应用
- Grid 怎么安装和运行?
- 在 Xcode 中通过 Swift Package Manager 添加仓库 URL https://github.com/exyte/Grid 或在 Podfile 中添加 CocoaPods 依赖: pod 'ExyteGrid' 使用 Grid(tracks: 3) 并在闭包中放置视图来完成布局
- 在哪里获取 Grid?
- 源代码和安装说明在 GitHub 上:https://github.com/exyte/Grid
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个 Go 语言 PDF 生成库,采用类似 Bootstrap 的行列栅格布局来排版文档。
为 SwiftUI 补充缺失功能的 Swift 包,提供额外视图、扩展及 UIKit/AppKit 组件的 SwiftUI 封装。
一款基于 SwiftUI 开发的开源 Mastodon 客户端,支持 iOS、macOS、iPadOS 和 visionOS。