Представляем коллекцию Backports Swiftui, чтобы облегчить разработку вашего iOS.
Многие бэкпорты поддерживают iOS 13+, но там, где функции Uikit были введены в более поздних версиях, то же самое будет применимым к этим обратным авторитету, чтобы сохранить паритет с uikit.
В некоторых случаях я также включил дополнительные API, которые привносят больше функций в вашу разработку Swiftui.
Обратите внимание, что все бэкпорты будут сопоставлены API с официальными API Apple, любые дополнительные функции будут предоставлены отдельно.
Все обратные авторитеты полностью задокументированы, в большинстве случаев с использованием собственной документации Apple для последовательности. Пожалуйста, обратитесь к документам «Заголовок» или оригинальной документации Apple для получения более подробной информации.
Существует также демонстрационный проект, где вы можете увидеть полные демонстрации всех обратных авторитетов и дополнительных функций, включая справочный код, который поможет вам начать работу.
Наконец, я надеюсь, что это репо также служит отличным ресурсом для того, как вы можете эффективно подтвердить с минимальными взломами?
Полную документацию можно найти здесь.
Создание полезных библиотек, подобных этим, отнимает время от моей семьи. Я строю эти инструменты в свободное время, потому что я чувствую, что важно вернуть сообществу. Пожалуйста, рассмотрите возможность спонсировать меня, так как это помогает мне работать над такими полезными библиотеками?
Вы также можете дать мне подписку и «спасибо» в любое время.
Библиотека принимает конструкцию в обратномпорте Дейва Делонга, в котором используется один тип для улучшения обнаружения и обслуживаемости, когда придет время удалить ваши реализации в обратномпорте в пользу официальных API.
Закупорки чистых типов могут быть легко обнаружены в пространстве имен Backport . Точно так же модификаторы обнаруживаются в пространстве имен .backport .
К сожалению, в обратном отношении
Environmentне могут быть доступны так же, в этих случаях значения Apple 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 Swiftui
AsyncImageAppStoragebackground - API ViewBuilderDismissActionDynamicTypeSize - Label - LabeledContentNavigationDestination - использует стандартную навигациюnavigationTitle - более новая APIoverlay - API ViewBuilderonChangeopenURLProgressViewpresentationDetentspresentationDragIndicatorquicklookPreviewrequestReviewRefreshable -включает в себя перехватScaledMetricShareLinkStateObjectscrollDisabledscrollDismissesKeyboardscrollIndicatorsSection(_ header:)task - асинхронность/ожидание модификатораUikit
UIHostingConfiguration - упрощает встраивание Swiftui в UICollectionViewCell и UITableViewCell Модальные презентации
Добавляя это в представленное представление, вы можете использовать предоставленное закрытие, чтобы представить ActionSheet пользователю, когда он попытается уволить интерактивно. Вы также можете использовать это, чтобы полностью отключить интерактивные увольнения.
presentation ( isModal : true ) { /* attempt */ }FittingGeometryReader
Пользовательская реализация GeometryReader , которая правильно размещает себя в своем контенте. Это полезно во многих случаях, когда вам нужен GeometryReader , но вы не хотите, чтобы он неявно занимал границы своего родительского представления.
FittingScrollView
Пользовательский ScrollView , который уважает Spacer 's, когда контент не прокручивается. Это полезно, когда вам нужно разместить представление по краям вашего 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"))