Skip to content
PullToRefresh for any kind of view.
Swift Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example added gif file Sep 19, 2019
NSVPullToRefresh
.gitignore
.travis.yml
LICENSE
NSVPullToRefresh.podspec
README.md
_Pods.xcodeproj Initial commit Sep 18, 2019
pull.gif

README.md

Customizable PullToRefresh for any kind of view

CI Status Version License Platform

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

Swift 5.0

Installation

NSVPullToRefresh is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'NSVPullToRefresh'

Usage

import NSVPullToRefresh

import NSVPullToRefresh

In a simple case you will just need to add PullToRefresh to your main view, it will automatically handle child ScrollView(TableView,CollectionView), if there is one, without blocking other gestures added to the view.

view.addPullToRefresh { [weak self] in
    guard let strongSelf = self else {
        return
    }
    your code here
    DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {
        strongSelf.view.hidePullToRefresh()
    })
}

⚠️ Don't forget to weakly capture self, to avoid reference cycling! for hiding just call

hidePullToRefresh()

on that view.

Creating custom PullToRefresh

Default it uses UIActivityIndicatorView, for customizing you will need to create any UIView which will implement LoadingView protocol. You will need to specify size of refresher, topOffset, and also implement startLoading and stopLoading methods. Optionally there is a speed property with default value of 1.

Progress of Refreshing

You can get the progress of refreshing by adding this callback. It will give value from 0 to 1.

view.onProgress = { [weak self] progress in
    print(progress)
}

Author

Narek1994, nareksimonyan94@gmail.com

License

NSVPullToRefresh is available under the MIT license. See the LICENSE file for more info.

You can’t perform that action at this time.