PaginationUIManager is a quite handy library for pagination in iOS. It also offers custom PullToRefresh View.
- Ease to implement Pagination.
- Choise of using custom refreshing animation for pull-to-refresh or basic (default provided by iOS).
- Bottom loader (if there is more data to load) is automatically managed.
CocoaPods is the dependency manager for Cocoa Libraries. You can install Cocoapods using following command:
$ sudo gem install cocoapods
If you wish to integrate PaginationUIManager in your project, the make following changes in your Podfile
:
source 'https://github.com/Nickelfox/PaginationUIManager.git'
platform :ios, '9.0'
use_frameworks!
pod 'PaginationUIManager', '~> 0.2.1'
After saving Podfile
. Run following command:
pod install
If you don't want to use any dependency manager in your project, you can install this library manually too.
Just add the following lines to your Podfile
:
pod "PaginationUIManager", :git => 'https://github.com/Nickelfox/PaginationUIManager.git'
After saving Podfile, run following:
pod install
It's very simple to use PaginationUIManager. What all you need is just to create a variable of type PaginationUIManager.
fileprivate var paginationUIManager: PaginationUIManager?
While initialising, PaginationUIManager requires the UIScrollView(or its subclasses i.e. UITableView or UICollectionView) and pullToRefreshView type e.g. none, basic or custom. The custom type accepts the instance of UIView.
self.paginationUIManager = PaginationUIManager(scrollView: self.tableView, pullToRefreshType: .basic)
Also, we need to set the delegate of paginationUIManager.
self.paginationUIManager?.delegate = self
The ViewController in which we're initialising PaginationUIManager, it must conform PaginationUIManagerDelegate.
extension ViewController: PaginationUIManagerDelegate {
func refreshAll(completion: @escaping (Bool) -> Void) {
// your implementation.
}
func loadMore(completion: @escaping (Bool) -> Void) {
// your implementation.
}
}
refreshAll
method is fired when you pull-to-refresh for new data.
loadMore
method is fired if there is more data to load.
For custom animations in pull-to-refresh, the UIView class must be subclass of PullToRefreshContentView.
method setState
lets you mange animation of following states.
states are the cases of enum PullToRefreshViewState.
public enum SSPullToRefreshViewState : UInt {
// state before you start dragging to refresh
case normal
// state when you've dragged enough to refresh
case ready
// state when data is getting refreshed
case loading
// state when data has finished loading
case closing
}
If you're using this on UICollectionView
, then make sure you've enabled paging and set alwaysBounceVertical
property
of UICollectionView
to true
.
Detailed example is there in Demo Directory.
- Fork it
- Create your feature branch
git checkout -b my-new-feature
- Commit your changes
git commit -am 'Add some feature'
- Push to the branch
git push origin my-new-feature
- Create a new Pull Request