{"repo":"gh123man/SwiftUI-Refresher","free":true,"listed":false,"github":"https://github.com/gh123man/SwiftUI-Refresher","clone":"git clone https://github.com/gh123man/SwiftUI-Refresher.git","description":"A native, customizable SwiftUI refresh control","language":"Swift","stars":183,"topics":["ios","swift","swiftui"],"license":"MIT","category":"mobile-apps","readme_excerpt":"Refresher A customizable, native SwiftUI refresh control for iOS 14+ Why? - the native SwiftUI refresh control only works on iOS 15+ - the native UIKit refresh control works with ugly wrappers, but has buggy behavior with navigation views - I needed a refresh control that could accomodate an overlay (such as appearing on top of a static image) - This one is very customizable See it in action If you want to see it in a real app, check out dateit Also works well with ScrollViewLoader Usage First add the package to your project. Features - async / await compatible - even on iOS 14 - completion callback also supported for DispatchQueue operations - .default and .system styles (see below for details) - customizable refresh spinner (see below for example) Examples and usage See: Examples for a full sample project with multiple implementations Navigation view Refresher plays nice with both Navigation views and navigation subviews. Detail view with overlay Refresher supports an overlay mode to show a refresh indicator over fixed position content .refresher(overlay: true) System style Refresher 's default animation is designed to be more flexible than the system animation style. If you want Refresher to behave more like they system refresh control, you can change the style: Customization Refresher can take a custom spinner view. Your custom view will get a binding instances of the refresher state that contains useful properties for managing animations and translations. Here is a custo","default_branch":null,"files":null,"tree":[],"storefront":"/r/gh123man","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/gh123man/SwiftUI-Refresher/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}