Was ist ein Rasterlayout?
Bei der Entwicklung einer Anwendungsoberfläche handelt es sich meist um eine zweidimensionale Darstellung visueller Elemente. Es gibt viele Steuerelemente, die das Layout standardisieren und vereinfachen sollen. In Bezug auf Webentwicklungskonzepte schlug die CSS-Arbeitsgruppe 2017 das Rasterlayout als beste Methode zum Erstellen von 2D-UI-Vorlagen vor.
In iOS 13 SDK haben wir die Möglichkeit, Elemente VStack, HStack, ZStack linear in Form einer Liste anzuordnen: Liste. Es gibt jedoch keine Möglichkeit, die Semantik der Anordnung von Elementen in einem zweidimensionalen Koordinatensystem zu definieren. Also haben wir beschlossen, es selbst zu erstellen.
In iOS 14 hat Apple seine Grid-Implementierung eingeführt, die im Abschnitt "Apple LazyVGrid / LazyHGrid" erläutert wird.
Beispiele für Schnittstellen mit Rasterlayout
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 verfügt über einen Inhaltsmodus: .fill, in dem das Raster Elemente anordnet, um die Containeransicht zu füllen, ohne die Größe jedes Elements manuell berechnen zu müssen.
Die Konzepte dieser beiden Implementierungen sind etwas ähnlich, unterscheiden sich aber auch in vielerlei Hinsicht. Auf der Seite des Apple Grid gibt es eine native Implementierung, die sich auf eine große Anzahl von Elementen konzentriert, und auf der Seite von ExyteGrid - mehr Funktionalität und Open Source Code, an deren Entwicklung jeder teilnehmen kann.
Ich freue mich, Sie sowohl als Benutzer als auch als Mitwirkende am ExyteGrid- Bibliotheksrepository zu sehen .
Natürlich gibt es im Abschnitt Roadmap eine Liste der Funktionen, die noch ausgeführt werden müssen .