什么是网格布局?
在开发应用程序界面时,我们通常会处理视觉元素的二维表示。有许多控件旨在标准化和简化布局。在Web开发概念方面,CSS工作组于2017年提出了Grid Layout作为创建2D UI模板的最佳方法。
在iOS 13 SDK中,我们能够以列表的形式线性排列元素VStack,HStack,ZStack。但是,无法定义二维坐标系中元素排列的语义。因此,我们决定自己创建它。
在iOS 14中,Apple引入了其网格实现,我们将在下面的Apple LazyVGrid / LazyHGrid部分中进行讨论。
网格布局的接口示例
grid . , . Grid, UICollectionView, .
, Grid Layout
Timetable
, , . grid , . Spans grid item .
, .
, , . , — . Grid Layout , grid flow .rows .columns.
grid:
grid , , . , .
, , tracks. . , , .
Grid, . .
, , , . .
, : .
, . , , . grid (dense) .
Grid , , . scroll fill.
.
, , .
ExyteGrid — Grid, SwiftUI. , ExyteGrid:
- Strava
, grid. Grid. , , spans .
iOS
iOS? , grid, grid item. ExyteGrid layout, . SwiftUI grid.
Apple LazyVGrid/LazyHGrid
Apple LazyVGrid LazyVGrid iOS 14, ExyteGrid :
- Apple span . / .
- grid: / .
- ExyteGrid (grid packing): sparse, dense, , , .
- Apple Grid fade , ForEach. ExyteGrid , ID grid. ID GridGroup ForEach, SwiftUI (transition) .
- . Flexible Apple Grid , , .fr ExyteGrid .
- .adaptive Apple Grid .fit . Adaptive . , . Fit ExyteGrid , , .
- ExyteGrid gridCellOverlay gridCellBackground, custom view , . .
- Apple Grid , , ExyteGrid .
- ExyteGrid具有内容模式:.fill,在该模式下,网格可以排列项目以填充容器视图,而无需手动调整每个项目的大小。
这两种实现的概念有些相似,但是在许多方面也有所不同。在Apple Grid的一侧有一个本机实现,着重于大量元素,在ExyteGrid的一侧有更多的功能和开源代码,每个人都可以参与其中。
很高兴看到您既是ExyteGrid库存储库的用户又是他们的贡献者。
当然,“路线图”部分中还有待完成的功能列表。