Apresentando uma coleção de backports swifttu para facilitar seu desenvolvimento do iOS.
Muitos backports suportam o iOS 13+, mas onde os recursos do UIKIT foram introduzidos em versões posteriores, o mesmo será aplicável a esses backports, para manter a paridade com o UIKIT.
Em alguns casos, também incluí APIs adicionais que trazem mais recursos para o seu desenvolvimento Swiftui.
Observe que todos os backports serão compatíveis com as APIs oficiais da Apple, quaisquer recursos adicionais serão fornecidos separadamente.
Todos os backports estão totalmente documentados, na maioria dos casos, usando a própria documentação da Apple para consistência. Consulte os documentos do cabeçalho ou a documentação original da Apple para obter mais detalhes.
Há também um projeto de demonstração disponível, onde você pode ver demonstrações completas de todos os backports e recursos adicionais, incluindo código de referência para ajudá -lo a começar.
Por fim, espero que este repo também sirva como um ótimo recurso para como você pode apoiar efetivamente com o mínimo de hacks?
A documentação completa pode ser encontrada aqui.
Construir bibliotecas úteis como essas, tira um tempo longe da minha família. Construo essas ferramentas no meu tempo livre, porque sinto que é importante retribuir à comunidade. Por favor, considere me patrocinar, pois isso me ajuda a trabalhar em bibliotecas úteis como essas?
Você também pode me dar um seguimento e um 'obrigado' a qualquer momento.
A biblioteca adota um design de backport de Dave DeLong que utiliza um único tipo para melhorar a descoberta e a manutenção quando chegar a hora de remover suas implementações de backport, a favor das APIs oficiais.
Backports de tipos puros, podem ser facilmente descobertos no espaço para nome de Backport . Da mesma forma, os modificadores são descobertos no espaço para nome .backport .
Infelizmente, o Backports
Environmentnão pode ser acessar dessa maneira, nesses casos, os valores da API da Apple serão prefixados combackportpara simplificar a descoberta.
Tipos:
@ Backport . AppStorage ( " filter-enabled " )
private var filterEnabled : Bool = falseModificador:
Button ( " Show Prompt " ) {
showPrompt = true
}
. sheet ( isPresented : $showPrompt ) {
Prompt ( )
. backport . presentationDetents ( [ . medium , . large ] )
}Ambiente:
@ Environment ( . backportRefresh ) private var refreshAction Swiftui
AsyncImageAppStoragebackground - ViewBuilderDismissActionDynamicTypeSize - Label - LabeledContentNavigationDestination - usa uma visão de navegação padrãonavigationTitle - API mais recenteoverlay - API ViewBuilderonChangeopenURLProgressViewpresentationDetentspresentationDragIndicatorquicklookPreviewrequestReviewRefreshable -inclui puxar para refrescarScaledMetricShareLinkStateObjectscrollDisabledscrollDismissesKeyboardscrollIndicatorsSection(_ header:)task - ASYNC/Aguarda ModificadorUikit
UIHostingConfiguration - simplifica a incorporação de SwiftUi em UICollectionViewCell e UITableViewCell Apresentações modais
Adicionando isso à sua visualização apresentada, você pode usar o fechamento fornecido para apresentar uma ActionSheet a um usuário quando eles tentarem descartar interativamente. Você também pode usar isso para desativar completamente as demissões interativas.
presentation ( isModal : true ) { /* attempt */ }FittingGeometryReader
Uma implementação personalizada GeometryReader que se apóia corretamente ao seu conteúdo. Isso é útil em muitos casos em que você precisa de um GeometryReader , mas não deseja que ele implicitamente aceite os limites da visão dos pais.
FittingScrollView
Um ScrollView personalizado que respeita o Spacer quando o conteúdo não é rolável. Isso é útil quando você precisa colocar uma visualização nas bordas do seu ScrollView, enquanto seu conteúdo é pequeno o suficiente para não exigir rolagem. Outro excelente caso de uso é o conteúdo verticalmente centrado que fica alinhado top quando o conteúdo requer rolagem.
Você pode instalar manualmente (copiando os arquivos no diretório Sources ) ou usando o Swift Package Manager ( preferencial )
Para instalar usando o Swift Package Manager, adicione -o à seção de dependencies do seu Package.swift File:
.package(url: "https://github.com/shaps80/SwiftUIBackports.git", .upToNextMajor(from: "2.0.0"))