تقديم مجموعة من عمليات الخلفية Swiftui لجعل تطوير iOS أسهل.
تدعم العديد من عمليات إعادة البيع iOS 13+ ، لكن حيث تم تقديم ميزات Uikit في الإصدارات اللاحقة ، فإن الشيء نفسه سيكون قابلاً للتطبيق على هذه المقاطع الخلفية ، للحفاظ على التكافؤ مع Uikit.
في بعض الحالات ، قمت أيضًا بتضمين واجهات برمجة التطبيقات الإضافية التي تجلب المزيد من الميزات إلى تطوير Swiftui.
ملاحظة ، ستكون جميع عمليات البيع المتراكمة مطابقة لـ API إلى واجهات برمجة التطبيقات الرسمية من Apple ، وسيتم توفير أي ميزات إضافية بشكل منفصل.
يتم توثيق جميع عمليات البيع بالكامل ، في معظم الحالات باستخدام وثائق Apple الخاصة بالاتساق. يرجى الرجوع إلى مستندات الرأس أو الوثائق الأصلية لـ Apple لمزيد من التفاصيل.
هناك أيضًا مشروع تجريبي متاح حيث يمكنك رؤية مظاهرات كاملة لجميع عمليات البيع والميزات الإضافية ، بما في ذلك التعليمات البرمجية المرجعية لمساعدتك على البدء.
أخيرًا ، آمل أن يكون هذا الريبو بمثابة مورد رائع لكيفية التراجع بشكل فعال مع الحد الأدنى من الاختراقات؟
يمكن العثور على الوثائق الكاملة هنا.
بناء مكتبات مفيدة مثل هذه ، يستغرق وقتا بعيدا عن عائلتي. أقوم ببناء هذه الأدوات في وقت فراغي لأنني أشعر أنه من المهم رد الجميل للمجتمع. يرجى النظر في رعايتي لأنه يساعدني على إبقائي في العمل على مكتبات مفيدة مثل هذه؟
يمكنك أيضًا أن تعطيني متابعة و "شكرًا" في أي وقت.
تعتمد المكتبة تصميمًا خلفيًا من قبل Dave Delong يستفيد من نوع واحد لتحسين قابلية الاكتشاف والصيانة عندما يحين الوقت لإزالة تطبيقات Packport ، لصالح واجهات برمجة التطبيقات الرسمية.
يمكن اكتشاف عمليات خلفية للأنواع النقية بسهولة تحت مساحة الاسم Backport . وبالمثل ، يمكن اكتشاف المعدلات ضمن مساحة اسم .backport .
لسوء الحظ ، لا يمكن الوصول إلى عمليات
Environmentالمتراكمة بهذه الطريقة ، وفي هذه الحالات ، سيتم توجيه قيم APEL API معbackportلتبسيط الاكتشاف.
الأنواع:
@ Backport . AppStorage ( " filter-enabled " )
private var filterEnabled : Bool = falseالمعدل:
Button ( " Show Prompt " ) {
showPrompt = true
}
. sheet ( isPresented : $showPrompt ) {
Prompt ( )
. backport . presentationDetents ( [ . medium , . large ] )
}بيئة:
@ Environment ( . backportRefresh ) private var refreshAction سويفتوي
AsyncImageAppStoragebackground - ViewBuilder APIDismissActionDynamicTypeSize - Label - LabeledContentNavigationDestination - يستخدم NavigationView قياسيnavigationTitle - أحدث واجهة برمجة التطبيقاتoverlay - ViewBuilder APIonChangeopenURLProgressViewpresentationDetentspresentationDragIndicatorquicklookPreviewrequestReviewRefreshable -يشمل السحب إلى الحفرScaledMetricShareLinkStateObjectscrollDisabledscrollDismissesKeyboardscrollIndicatorsSection(_ header:)task - المعدل Async/ينتظرUikit
UIHostingConfiguration - تبسيط تضمين Swiftui في UICollectionViewCell و UITableViewCell العروض الوسيطة
إضافة هذا إلى عرضك المقدم ، يمكنك استخدام الإغلاق المقدم لتقديم ActionSheet إلى مستخدم عندما يحاولون الفصل بشكل تفاعلي. يمكنك أيضًا استخدام هذا لتعطيل الفصل التفاعلي تمامًا.
presentation ( isModal : true ) { /* attempt */ }FittingGeometryReader
تطبيق GeometryReader المخصص الذي يتمتع بشكل صحيح بأحجام تلقائية لمحتواه. هذا مفيد في العديد من الحالات التي تحتاج فيها إلى GeometryReader ولكن لا تريد أن تأخذ ضمنيًا حدود عرض الوالدين.
FittingScrollView
ScrollView المخصص الذي يحترم Spacer عندما لا يكون المحتوى قابلاً للتمرير. يكون هذا مفيدًا عندما تحتاج إلى وضع عرض على حواف ScrollView الخاصة بك بينما يكون محتوىه صغيرًا بما يكفي حتى لا يتطلب التمرير. هناك حالة استخدام كبيرة أخرى وهي محتوى مركّز رأسيًا يصبح محاذاة top بمجرد أن يتطلب المحتوى التمرير.
يمكنك تثبيت يدويًا (عن طريق نسخ الملفات في دليل Sources ) أو استخدام Swift Package Manager ( المفضل )
للتثبيت باستخدام Swift Package Manager ، أضف هذا إلى قسم dependencies في ملف Package.swift :
.package(url: "https://github.com/shaps80/SwiftUIBackports.git", .upToNextMajor(from: "2.0.0"))