引入SwiftUi式備流集合,以使您的iOS開發更加容易。
許多Backports支持iOS 13+,但是在以後的版本中引入Uikit功能的地方,將適用於這些Backports,以保持與Uikit的均衡。
在某些情況下,我還提供了其他API,這些API為您的SwiftUI開髮帶來了更多功能。
請注意,所有備用運動都將與Apple的官方API匹配,任何其他功能都將分別提供。
在大多數情況下,使用Apple自己的文檔以保持一致性,所有Backports均已充分記錄。有關更多詳細信息,請參閱標題文檔或Apple的原始文檔。
還有一個演示項目,您可以在其中看到所有Backports和其他功能的完整演示,包括參考代碼,以幫助您開始。
最後,我希望此倉庫也可以成為如何有效地使用最小黑客攻擊的重要資源?
完整的文檔可以在此處找到。
建立有用的圖書館需要時間離開我的家人。我在業餘時間構建這些工具,因為我認為回饋社區很重要。請考慮贊助我,因為它可以幫助我在此類有用的圖書館工作?
您也可以隨時隨地給我跟隨和“感謝”。
圖書館採用戴夫·德隆(Dave DeLong)的Backport Design,它利用一種類型的方式來提高刪除Backport實施的時機,以促進官方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 斯威夫特
AsyncImageAppStoragebackground - ViewBuilder APIDismissActionDynamicTypeSize - Label - LabeledContentNavigationDestination - 使用標準NavigationViewnavigationTitle - 更新的APIoverlay - ViewBuilder APIonChangeopenURLProgressViewpresentationDetentspresentationDragIndicatorquicklookPreviewrequestReviewRefreshable - 包括拉力到倒數ScaledMetricShareLinkStateObjectscrollDisabledscrollDismissesKeyboardscrollIndicatorsSection(_ header:)task - 異步/等待修飾符Uikit
UIHostingConfiguration - 簡化嵌入swiftui在UICollectionViewCell和UITableViewCell中模態演示
將其添加到您提出的視圖中,您可以使用提供的封閉方式在用戶嘗試交互式解散時向用戶展示ActionSheet 。您也可以將其完全禁用交互式解僱。
presentation ( isModal : true ) { /* attempt */ }FittingGeeMeTryReader
一個自定義自動尺寸自動尺寸到其內容的自定義GeometryReader實現。在許多情況下,這很有用,在您需要GeometryReader但不希望它隱式佔據其父視圖的範圍的情況下。
fittingsCrollview
當內容不可滾動時,它尊重Spacer的自定義ScrollView 。當您需要在捲軸的邊緣上放置視圖,而其內容則足夠小,以至於不需要滾動時,這很有用。另一個很棒的用例是垂直中心的內容,一旦內容需要滾動,它就會成為top 。
您可以手動安裝(通過在Sources目錄中復製文件)或使用Swift Package Manager(首選)
要使用Swift Package Manager安裝,請將其添加到Package.swift的dependencies項部分。 Swift文件:
.package(url: "https://github.com/shaps80/SwiftUIBackports.git", .upToNextMajor(from: "2.0.0"))