Einführung einer Sammlung von Swiftui -Backports, um Ihre iOS -Entwicklung zu erleichtern.
Viele Backports unterstützen iOS 13+, aber wenn UIKIT -Funktionen in späteren Versionen eingeführt wurden, gilt dies auch für diese Backports, um die Parität mit UIKIT zu halten.
In einigen Fällen habe ich auch zusätzliche APIs aufgenommen, die Ihre Swiftui -Entwicklung mehr Funktionen verleihen.
Beachten Sie, dass alle Backports API-Matching an die offizielle APIs von Apple erhalten, werden alle zusätzlichen Funktionen separat bereitgestellt.
Alle Backports sind vollständig dokumentiert, in den meisten Fällen unter Verwendung von Apples eigener Dokumentation zur Konsistenz. Weitere Informationen finden Sie in den Header -Dokumenten oder der Originaldokumentation von Apple.
Es gibt auch ein Demo -Projekt, bei dem Sie vollständige Demonstrationen aller Backports und zusätzliche Funktionen sehen können, einschließlich Referenzcode, mit denen Sie beginnen können.
Zuletzt hoffe ich, dass dieses Repo auch als großartige Ressource dafür dient, wie Sie effektiv mit minimalen Hacks zurückfordern können?
Die vollständige Dokumentation finden Sie hier.
Der Aufbau nützlicher Bibliotheken wie diese nimmt meine Familie Zeit entfernt. Ich baue diese Werkzeuge in meiner Freizeit, weil ich der Meinung bin, dass es wichtig ist, der Community etwas zurückzugeben. Bitte denken Sie in Betracht, mich zu sponsern, da es mir hilft, an nützlichen Bibliotheken wie diesen zu arbeiten?
Sie können mir auch jederzeit ein Follow und ein "Danke" geben.
Die Bibliothek nimmt von Dave DeLong ein Backport -Design an, das einen einzigen Typ verwendet, um die Entdeckbarkeit und Wartbarkeit zu verbessern, wenn es Zeit ist, Ihre Backport -Implementierungen zugunsten offizieller APIs zu entfernen.
Backports reiner Typen können leicht im Backport -Namespace entdeckt werden. In ähnlicher Weise sind Modifikatoren unter dem .backport .
Leider kann
Environmentauf diese Weise nicht zugreifen. In diesen Fällen werden die Apple -API -Werte mitbackportvorangestellt, um die Entdeckung zu vereinfachen.
Typen:
@ Backport . AppStorage ( " filter-enabled " )
private var filterEnabled : Bool = falseModifikator:
Button ( " Show Prompt " ) {
showPrompt = true
}
. sheet ( isPresented : $showPrompt ) {
Prompt ( )
. backport . presentationDetents ( [ . medium , . large ] )
}Umfeld:
@ Environment ( . backportRefresh ) private var refreshAction Swiftui
AsyncImageAppStoragebackground - ViewBuilder -APIDismissActionDynamicTypeSize - Label - LabeledContentNavigationDestination - Verwendet eine Standard -NavigationviewnavigationTitle - Neuere APIoverlay - ViewBuilder -APIonChangeopenURLProgressViewpresentationDetentspresentationDragIndicatorquicklookPreviewrequestReviewRefreshable -beinhaltet Pull-to-RefreshScaledMetricShareLinkStateObjectscrollDisabledscrollDismissesKeyboardscrollIndicatorsSection(_ header:)task - asynchron/wartet ModifikatorUikit
UIHostingConfiguration - vereinfacht das Einbetten von Swiftui in UICollectionViewCell und UITableViewCell Modale Präsentationen
Wenn Sie dies zu Ihrer vorgestellten Ansicht hinzufügen, können Sie einen ActionSheet einem Benutzer vorlegen, wenn er versucht, interaktiv zu entlassen. Sie können dies auch verwenden, um interaktive Entlassungen vollständig zu deaktivieren.
presentation ( isModal : true ) { /* attempt */ }FITTOREMYREYREADER
Eine benutzerdefinierte GeometryReader -Implementierung, die sich korrekt für den Inhalt automatisiert. Dies ist in vielen Fällen nützlich, in denen Sie einen GeometryReader benötigen, aber nicht möchten, dass er die Grenzen seiner Elternansichten implizit aufnimmt.
FunningScrollView
Eine benutzerdefinierte ScrollView , die Spacer von Spacer respektiert, wenn der Inhalt nicht scrollbar ist. Dies ist nützlich, wenn Sie eine Ansicht an den Rändern Ihres Scrollviews platzieren müssen, während der Inhalt klein genug ist, um keine Scrollen zu erfordern. Ein weiterer großartiger Anwendungsfall sind vertikal zentrierte Inhalte, der nach dem Scrollen der Inhalte top wird.
Sie können manuell installieren (indem Sie die Dateien im Sources kopieren) oder mit dem Swift -Paket -Manager (bevorzugt) verwenden ( bevorzugt ).
Um mit Swift Package Manager zu installieren, fügen Sie dies dem Abschnitt dependencies Ihres Package.swift hinzu.
.package(url: "https://github.com/shaps80/SwiftUIBackports.git", .upToNextMajor(from: "2.0.0"))