Latest 0.2
Homepage https://github.com/Nickelfox/PaginationUIManager
License MIT
Platforms ios 9.0
Dependencies SSPullToRefresh
Authors

License
Swift

PaginationUIManager is a quite handy library for pagination in iOS. It also offers custom PullToRefresh View.

Features

  • 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.

Installation

CocoaPods

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.1.0'

After saving Podfile. Run following command:

pod install

Manually

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

Usage

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.

Example

Detailed example is there in Demo Directory.

Want to Contribute ?

  • 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

Latest podspec

{
    "name": "PaginationUIManager",
    "version": "0.2",
    "summary": "A Generic PaginationUIManager library for iOS by Fox Labs.",
    "description": "A Generic PaginationUIManager library for iOS by Fox Labs. It contains utility methods for various classes in iOS.",
    "homepage": "https://github.com/Nickelfox/PaginationUIManager",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Ravindra Soni": "[email protected]"
    },
    "source": {
        "git": "https://github.com/Nickelfox/PaginationUIManager.git",
        "tag": "0.2"
    },
    "platforms": {
        "ios": "9.0"
    },
    "source_files": "Source/**/*",
    "dependencies": {
        "SSPullToRefresh": [
            "~> 1.3"
        ]
    },
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This