Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wxxsw/refresh

🎈 Great SwiftUI drop-down refresh and scroll up to load more. δΈ‹ζ‹‰εˆ·ζ–°γ€δΈŠζ‹‰εŠ θ½½
https://github.com/wxxsw/refresh

loadmore refresh swiftui

Last synced: 6 days ago
JSON representation

🎈 Great SwiftUI drop-down refresh and scroll up to load more. δΈ‹ζ‹‰εˆ·ζ–°γ€δΈŠζ‹‰εŠ θ½½

Awesome Lists containing this project

README

        

![Refresh](https://github.com/wxxsw/Refresh/blob/master/Images/logo.png)






codebeat badge



- [Features](#features)
- [Usage](#usage)
- [Installation](#installation)
- [Requirements](#requirements)
- [License](#license)

## Demo

Open `Refresh.xcodeproj` and run `Demo` target.

## Features

- [x] Support drop-down refresh and scroll up to load more.
- [x] Fully based on SwiftUI, no UIViewRepresentable, no UIViewControllerRepresentable.
- [x] Compatible with NavigationView, TabView.
- [x] Fully customizable UI.
- [x] Easy to animate.
- [x] Simple API.

## Usage

```swift
ScrollView {
RefreshHeader(refreshing: $headerRefreshing, action: reload) { progress in
if self.headerRefreshing {
Text("refreshing...")
} else {
Text("Pull to refresh")
}
}

ForEach(items) { item in
YourCell(item: item)
}

RefreshFooter(refreshing: $footerRefreshing, action: loadMore) {
if self.noMore {
Text("No more data !")
} else {
Text("refreshing...")
}
}
.noMore(noMore)
.preload(offset: 50)
}
.enableRefresh()
```

## Installation

### Swift Package Manager

1. Select `Xcode -> File -> Swift Packages -> Add Package Dependency...`
2. Enter `https://github.com/wxxsw/Refresh`.
3. Click `Next`, then select the version, complete.

## Requirements

- iOS 13+
- Xcode 11+
- Swift 5+

## License

Refresh is released under the MIT license. [See LICENSE](https://github.com/wxxsw/Refresh/blob/master/LICENSE) for details.