WrappingHStack es un elemento de interfaz de usuario que funciona de manera muy similar a HStack, pero coloca automáticamente los elementos desbordados en las siguientes líneas.
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 )
Requisitos iOS 13+
. package ( url : " https://github.com/dkk/WrappingHStack " , . upToNextMajor ( from : " 2.0.0 " ) )
Simplemente agregue la siguiente línea a su Podfile
:
pod 'WrappingHStack'
Importe el paquete WrappingHStack a su vista:
import WrappingHStack
Úselo como usaría HStack para elementos individuales:
WrappingHStack {
/* some views */
NewLine ( ) // Optional: Use NewLine to force the next element to be placed in a next line
/* some more views */
}
o como ForEach para recorrer los elementos:
WrappingHStack ( 1 ... 30 , id : . self ) {
Text ( " Item: ( $0 ) " )
}
Usted controla la posición de los elementos utilizando el parámetro alignment
, que establece la HorizontalAlignment
de los elementos. Es decir, delante, detrás o centrado.
Para mayor comodidad y flexibilidad, WrappingHSTack
ofrece el parámetro spacing
, que define cómo se calculará el espaciado. Puede ser de uno de los siguientes tipos:
.constant
: para espacios fijos, cada línea comienza con un elemento y la separación horizontal entre dos elementos cualesquiera es el valor dado..dynamic
: para que los elementos llenen el ancho de WrappingHSTack. Puedes pasar un espacio mínimo..dynamicIncludingBorders
para llenar todo el ancho con espacio igual entre elementos y desde los elementos hasta el borde. Puedes pasar un espacio mínimo. WrappingHStack
en un NavigationLink
(solo iOS16).Puedes contribuir a este proyecto ayudándome a resolver cualquier problema informado o solicitud de funciones y creando una solicitud de extracción.
Patrocina este proyecto para obtener una recompensa y darme un impulso moral.
WrappingHStack fue desarrollado originalmente por Daniel Klöck y se publica bajo la licencia MIT.