WrappingHStack ist ein UI-Element, das sehr ähnlich wie HStack funktioniert, überlaufende Elemente jedoch automatisch in den nächsten Zeilen positioniert.
WrappingHStack {
Text ( " WrappingHStack " )
. padding ( )
. font ( . title )
. border ( Color . black )
Text ( " can handle different element types " )
Image ( systemName : " scribble " )
. font ( . title )
. frame ( width : 200 , height : 20 )
. background ( Color . purple )
Text ( " and loop " )
. bold ( )
WrappingHStack ( 1 ... 20 , id : . self ) {
Text ( " Item: ( $0 ) " )
. padding ( 3 )
. background ( Rectangle ( ) . stroke ( ) )
} . frame ( minWidth : 250 )
}
. padding ( )
. border ( Color . black )
Voraussetzungen iOS 13+
. package ( url : " https://github.com/dkk/WrappingHStack " , . upToNextMajor ( from : " 2.0.0 " ) )
Fügen Sie einfach die folgende Zeile zu Ihrem Podfile
hinzu:
pod 'WrappingHStack'
Importieren Sie das WrappingHStack-Paket in Ihre Ansicht:
import WrappingHStack
Verwenden Sie es so, wie Sie HStack für einzelne Elemente verwenden würden:
WrappingHStack {
/* some views */
NewLine ( ) // Optional: Use NewLine to force the next element to be placed in a next line
/* some more views */
}
oder wie ein ForEach, um Elemente zu durchlaufen:
WrappingHStack ( 1 ... 30 , id : . self ) {
Text ( " Item: ( $0 ) " )
}
Sie steuern die Position der Elemente, indem Sie den Parameter „ alignment
verwenden, der die HorizontalAlignment
der Elemente festlegt. Dh vorangehend, nachlaufend oder zentriert.
Für noch mehr Komfort und Flexibilität bietet WrappingHSTack
den Parameter spacing
, der definiert, wie der Abstand berechnet wird. Es kann einer der folgenden Typen sein:
.constant
: Bei festem Abstand beginnt jede Zeile mit einem Element und der horizontale Abstand zwischen zwei beliebigen Elementen ist der angegebene Wert..dynamic
: Damit die Elemente die Breite des WrappingHSTack ausfüllen. Sie können einen minimalen Abstand übergeben..dynamicIncludingBorders
, um die gesamte Breite mit gleichem Abstand zwischen den Elementen und zwischen den Elementen und dem Rand auszufüllen. Sie können einen Mindestabstand übergeben. WrappingHStack
in einem NavigationLink
verwendet wird (nur iOS16).Sie können zu diesem Projekt beitragen, indem Sie mir bei der Lösung gemeldeter Probleme oder Funktionsanfragen helfen und eine Pull-Anfrage erstellen.
Sponsern Sie dieses Projekt, um eine Belohnung zu erhalten und mir einen moralischen Auftrieb zu geben.
WrappingHStack wurde ursprünglich von Daniel Klöck entwickelt und wird unter der MIT-Lizenz veröffentlicht.