All Versions
Latest Version
Avg Release Cycle
65 days
Latest Release
811 days ago

Changelog History
Page 3

  • v1.1.0 Changes

    March 25, 2018
    • โž• Add method for reloading data without passing initial item (8ebd931)
    • โž• Add option for selected font #143 (thanks @cheebow!)
    • ๐Ÿ›  Fix issue with reloading data when using PagingViewControllerDataSource (07641e2)
    • ๐Ÿ›  Fix integer overflow causing crash in UnplashExample #140
  • v1.0.3 Changes

    March 01, 2018
    • ๐Ÿ›  Fix issue where size delegate was not called #135
  • v1.0.2 Changes

    February 22, 2018
    • โšก๏ธ Update default background color for menu items #131
  • v1.0.1 Changes

    February 03, 2018
    • ๐Ÿ›  Fix issue with selecting items programatically #125
    • ๐Ÿ›  Fix wrong color on collection view background #126
    • ๐Ÿ›  Fix issue with menu items being clipped #127
  • v1.0.0 Changes

    January 29, 2018

    ๐Ÿš€ This release introduces a lot of breaking changes, a bunch of new features and a couple of bug fixes. Here are the most notable changes, with a full list of changes below.

    โœ‚ Removed PagingOptions initializer #98

    ๐Ÿ”ง All configuration is now moved into properties on the PagingViewController class. You no longer have to initialize a PagingViewController with an instance conforming to the PagingOptions protocol. This reduces the boilerplate of having to create a separate options struct when you just need to override a single value. It also means you can change the options after the PagingViewController has been initialized. All the properties on the PagingTheme protocol has also moved into separate properties on PagingViewController.


    struct Theme: PagingTheme {
      let textColor: UIColor = .red
    struct Options: PagingOptions {
      let theme: PagingTheme = Theme()
      let menuItemSize: PagingMenuItemSize = .fixed(width: 100, height: 40)
    let pagingViewController = PagingViewController(options: Options())


    let pagingViewController = PagingViewController()
    pagingViewController.menuItemSize = .fixed(width: 100, height: 40)
    pagingViewController.textColor = .red

    ๐Ÿ“‡ Renamed data source #99

    ๐Ÿšš The current data source protocol has been renamed to PagingViewControllerInfiniteDataSource and moved into the property called infiniteDataSource.

    โž• Added new data source #99

    ๐Ÿ›  A new PagingViewControllerDataSource protocol has been added that makes it easier to set up a custom data source if you have a fixed number of view controllers. To use the new data source, you only need to return the total number of view controllers as well as the view controller and PagingItem for a given index. The new data source replaces the existing dataSource property.


    extension ViewController: PagingViewControllerDataSource {
      func numberOfViewControllers<T>(in: PagingViewController<T>) -> Int {
        return items.count
      func pagingViewController<T>(_ pagingViewController: PagingViewController<T>, viewControllerForIndex index: Int) -> UIViewController {
        return ItemViewController(item: items[index])
      func pagingViewController<T>(_ pagingViewController: PagingViewController<T>, pagingItemForIndex index: Int) -> T {
        return items[index] as! T
    pagingViewController.dataSource = self

    โšก๏ธ Updated delegate protocol #100

    Three new delegate methods have been added to the PagingViewControllerDelegate protocol. You can now be notified before, during and after the user navigates to another view controller:

    protocol PagingViewControllerDelegate: class {
      func pagingViewController<T>(
        _ pagingViewController: PagingViewController<T>,
        isScrollingFromItem currentPagingItem: T,
        toItem upcomingPagingItem: T?,
        startingViewController: UIViewController,
        destinationViewController: UIViewController?,
        progress: CGFloat)
      func pagingViewController<T>(
        _ pagingViewController: PagingViewController<T>,
        willScrollToItem pagingItem: T,
        startingViewController: UIViewController,
        destinationViewController: UIViewController)
      func pagingViewController<T>(
        _ pagingViewController: PagingViewController<T>,
        didScrollToItem pagingItem: T,
        startingViewController: UIViewController?,
        destinationViewController: UIViewController,
        transitionSuccessful: Bool)
      func pagingViewController<T>(
        _ pagingViewController: PagingViewController<T>,
        widthForPagingItem pagingItem: T,
        isSelected: Bool) -> CGFloat?

    ๐Ÿ‘€ The widthForPagingItem: delegate has been changed to return CGFloat? instead of CGFloat (See: #100). The default implementation will return nil.

    โœ‚ Removed FixedPagingViewControllerDelegate protocol #100

    ๐Ÿ›  The FixedPagingViewControllerDelegate protocol is replaced by the PagingViewControllerDelegate protocol. The new delegate does not include the index for the paging items, but you can get the current index from the PagingIndexItem like this:

    extension ViewController: PagingViewControllerDelegate {
      func pagingViewController<T>(_ pagingViewController: PagingViewController<T>, didScrollToItem pagingItem: T, startingViewController: UIViewController?, destinationViewController: UIViewController, transitionSuccessful: Bool) {
        if let indexItem = pagingItem as? PagingIndexItem {
          print("index: ", indexItem.index)

    โž• Added

    • โž• Add option to always center selected menu item #101
    • ๐Ÿ‘ Allow subclassing the collection view layout #104
    • โž• Add empty implementations of collection view delegate methods (4840483)
    • โž• Add option to disable content interaction #113
    • โž• Add option for selected background color #114
    • โž• Add method for selecting paging items based on index #117

    ๐Ÿ”„ Changed

    • ๐Ÿ“‡ Rename selectPagingItem to select(pagingItem:) #105
    • ๐Ÿ‘‰ Make PagingState property public #107
    • ๐Ÿ‘‰ Make PagingItems struct public #108
    • ๐Ÿ‘‰ Make PagingState extension properties public (f842a7b)
    • ๐Ÿ‘‰ Make indicator layout attributes open to allow subclassing (7c35acc)
    • ๐Ÿ”„ Change collection view delegate methods to open (68b125b)
    • Replace PagingTheme with PagingOptions #111
    • ๐Ÿ“‡ Rename headerBackgroundColor to menuBackgroundColor #116

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fix performance issue with updating content offset #106
    • Set background color for paging cell based on options (1a70bd6)
    • ๐Ÿ›  Fix layout calculation when using transforms #102
    • Account for menu spacing when generating items #103
    • ๐Ÿ›  Fix bug with animation when selecting items (73913f)
  • v0.9.0 Changes

    December 25, 2017

    โž• Added

    • โž• Add method for reloading data #94
    • ๐Ÿ‘ Allow setting different width for selected cell #85
  • v0.8.0 Changes

    November 19, 2017

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fix selecting paging items before view appears #79
    • ๐Ÿ›  Fix issues with safe area insets #81
  • v0.7.0 Changes

    November 07, 2017

    ๐Ÿ”„ Changes

    • ๐Ÿ”„ Change access for EMPageViewController delegate method #72
    • ๐Ÿ‘Œ Improve performance by using manual frames for menu cells #68
    • โž• Add option to customize indicator and border view #67
    • ๐Ÿ“š Update documentation #60
  • v0.6.0 Changes

    September 25, 2017

    ๐Ÿ”„ Changes

    • โฌ†๏ธ Upgrade to Swift 4.0 #54

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fix bug where selecting items was not working #55
  • v0.5.0 Changes

    August 22, 2017

    โž• Added

    • โž• Add support for scrolling in header #48

    ๐Ÿ”„ Changes

    • Require PagingItem to conform to Hashable and Comparable: fbd7aff
    • ๐Ÿ‘‰ Use custom collection view layout instead of using UICollectionViewFlowLayout c6f78b4