WrappingHStack est un élément d'interface utilisateur qui fonctionne de manière très similaire à HStack, mais positionne automatiquement les éléments débordants sur les lignes suivantes.
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 )
Exigences iOS 13+
. package ( url : " https://github.com/dkk/WrappingHStack " , . upToNextMajor ( from : " 2.0.0 " ) )
Ajoutez simplement la ligne suivante à votre Podfile
:
pod 'WrappingHStack'
Importez le package WrappingHStack dans votre vue :
import WrappingHStack
utilisez-le comme vous utiliseriez HStack pour des éléments uniques :
WrappingHStack {
/* some views */
NewLine ( ) // Optional: Use NewLine to force the next element to be placed in a next line
/* some more views */
}
ou comme un ForEach pour parcourir les éléments :
WrappingHStack ( 1 ... 30 , id : . self ) {
Text ( " Item: ( $0 ) " )
}
Vous contrôlez la position des éléments à l'aide du paramètre alignment
, qui définit l' HorizontalAlignment
des éléments. C'est-à-dire en tête, en queue ou centré.
Pour encore plus de commodité et de flexibilité, WrappingHSTack
propose le paramètre spacing
, qui définit la manière dont l'espacement sera calculé. Il peut s'agir de l'un des types suivants :
.constant
: pour un espacement fixe, chaque ligne commence par un élément et la séparation horizontale entre 2 éléments quelconques est la valeur donnée..dynamic
: pour que les éléments remplissent la largeur du WrappingHSTack. Vous pouvez passer un espacement minimal..dynamicIncludingBorders
pour remplir toute la largeur avec un espacement égal entre les éléments et entre les éléments et la bordure. Vous pouvez passer un espacement minimal. WrappingHStack
dans un NavigationLink
(iOS16 uniquement).Vous pouvez contribuer à ce projet en m'aidant à résoudre tout problème signalé ou demande de fonctionnalité et en créant une pull request.
Parrainez ce projet pour obtenir une récompense et me donner un coup de pouce moral.
WrappingHStack a été initialement développé par Daniel Klöck et est publié sous la licence MIT.