WrappingHStack é um elemento de UI que funciona de maneira muito semelhante ao HStack, mas posiciona automaticamente os elementos transbordantes nas próximas linhas.
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 " ) )
Basta adicionar a seguinte linha ao seu Podfile
:
pod 'WrappingHStack'
Importe o pacote WrappingHStack para sua visualização:
import WrappingHStack
use-o como usaria o HStack para elementos únicos:
WrappingHStack {
/* some views */
NewLine ( ) // Optional: Use NewLine to force the next element to be placed in a next line
/* some more views */
}
ou como um ForEach para fazer um loop nos itens:
WrappingHStack ( 1 ... 30 , id : . self ) {
Text ( " Item: ( $0 ) " )
}
Você controla a posição dos itens usando o parâmetro alignment
, que define o HorizontalAlignment
dos itens. Ou seja, à frente, atrás ou centralizado.
Para ainda mais comodidade e flexibilidade, WrappingHSTack
oferece o parâmetro spacing
, que define como o espaçamento será calculado. Pode ser um dos seguintes tipos:
.constant
: para espaçamento fixo, cada linha começa com um item e a separação horizontal entre quaisquer 2 itens é o valor fornecido..dynamic
: para que os itens preencham a largura do WrappingHSTack. Você pode passar um espaçamento mínimo..dynamicIncludingBorders
para preencher toda a largura com espaçamento igual entre os itens e dos itens até a borda. Você pode passar um espaçamento mínimo. WrappingHStack
em um NavigationLink
(somente iOS16).Você pode contribuir com este projeto ajudando-me a resolver quaisquer problemas relatados ou solicitações de recursos e criando uma solicitação pull.
Patrocine este projeto para receber uma recompensa e me dar um impulso moral.
WrappingHStack foi originalmente desenvolvido por Daniel Klöck e é lançado sob a licença MIT.