WrappingHStack
2.2.11
WrappingHStack 是一個 UI 元素,其運作方式與 HStack 非常相似,但會自動將溢出元素放置在下一行。
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 )
要求 iOS 13+
. package ( url : " https://github.com/dkk/WrappingHStack " , . upToNextMajor ( from : " 2.0.0 " ) )
只需將以下行新增至您的Podfile
:
pod 'WrappingHStack'
將 WrappingHStack 套件匯入到您的視圖中:
import WrappingHStack
像使用 HStack 處理單一元素一樣使用它:
WrappingHStack {
/* some views */
NewLine ( ) // Optional: Use NewLine to force the next element to be placed in a next line
/* some more views */
}
或像 ForEach 一樣循環遍歷項目:
WrappingHStack ( 1 ... 30 , id : . self ) {
Text ( " Item: ( $0 ) " )
}
您可以使用參數alignment
來控制項目的位置,該參數設定項目的HorizontalAlignment
。即前導、尾隨或居中。
為了更方便和靈活, WrappingHSTack
提供了參數spacing
,它定義瞭如何計算間距。它可以是以下類型之一:
.constant
:對於固定間距,每行以一個項目開始,任兩個項目之間的水平間距是給定值。.dynamic
:讓項目填充 WrappingHSTack 的寬度。您可以傳遞最小間距。.dynamicIncludingBorders
以項目之間以及從項目到邊框的相等間距填充整個寬度。您可以傳遞最小間距。 NavigationLink
中使用WrappingHStack
時需要解決方法(僅限 iOS16)。您可以透過幫助我解決任何報告的問題或功能請求並建立拉取請求來為該專案做出貢獻。
贊助這個項目以獲得獎勵並給我精神上的提升。
WrappingHStack 最初由 Daniel Klöck 開發,並在 MIT 許可證下發布。