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
: สำหรับการเว้นวรรคคงที่ แต่ละบรรทัดจะขึ้นต้นด้วยรายการหนึ่งรายการ และค่าที่กำหนดให้แบ่งตามแนวนอนระหว่าง 2 รายการใดๆ.dynamic
: เพื่อให้รายการเติมความกว้างของ WrappingHSTack คุณสามารถผ่านระยะห่างขั้นต่ำได้.dynamicIncludingBorders
เพื่อเติมความกว้างเต็มโดยมีระยะห่างเท่ากันระหว่างรายการและจากรายการถึงเส้นขอบ คุณสามารถผ่านระยะห่างขั้นต่ำได้ WrappingHStack
ใน NavigationLink
(iOS16 เท่านั้น)คุณสามารถมีส่วนร่วมในโปรเจ็กต์นี้ได้โดยช่วยฉันแก้ไขปัญหาที่ได้รับรายงานหรือคำขอฟีเจอร์ และสร้างคำขอดึง
สนับสนุนโครงการนี้เพื่อรับรางวัลและให้กำลังใจฉัน
WrappingHStack ได้รับการพัฒนาโดย Daniel Klöck และเผยแพร่ภายใต้ใบอนุญาต MIT