WrappingHStack هو عنصر واجهة مستخدم يعمل بطريقة مشابهة جدًا لـ 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
لملء العرض الكامل بمسافات متساوية بين العناصر ومن العناصر إلى الحدود. يمكنك تمرير الحد الأدنى من التباعد. WrappingHStack
في NavigationLink
(iOS16 فقط).يمكنك المساهمة في هذا المشروع من خلال مساعدتي في حل أي مشكلات تم الإبلاغ عنها أو طلبات ميزات وإنشاء طلب سحب.
ادعم هذا المشروع لتحصل على الأجر وتعطيني دفعة معنوية.
تم تطوير WrappingHStack في الأصل بواسطة Daniel Klöck وتم إصداره بموجب ترخيص MIT.