All Versions
33
Latest Version
Avg Release Cycle
62 days
Latest Release
47 days ago

Changelog History
Page 1

  • v3.0.0

    December 03, 2020

    ๐Ÿ”„ Changes:

    • Custom PageViewController (#468)
    • ๐Ÿ‘ RTL language support (#468)

    This version introduces some breaking changes:

    Replaced EMPageViewController

    ๐Ÿ›  EMPageViewController has been replaced with our own PageViewController implementation, which fixes a bunch of issues (#524, #527, #426). The API of the new page view controller is pretty much identical to the old one, but the names of the types have changed:

    open class PagingViewController: UIViewController, UICollectionViewDelegate,- EMPageViewControllerDataSource,- EMPageViewControllerDelegate {+ PageViewControllerDataSource,+ PageViewControllerDelegate {- public let pageViewController: EMPageViewController+ public let pageViewController: PageViewController- open func em\_pageViewController(\_ pageViewController: EMPageViewController, viewControllerBeforeViewController viewController: UIViewController) -\> UIViewController? {+ open func pageViewController(\_ pageViewController: PageViewController, viewControllerBeforeViewController viewController: UIViewController) -\> UIViewController? {- open func em\_pageViewController(\_ pageViewController: EMPageViewController, viewControllerAfterViewController viewController: UIViewController) -\> UIViewController? {+ open func pageViewController(\_ pageViewController: PageViewController, viewControllerAfterViewController viewController: UIViewController) -\> UIViewController? {- open func em\_pageViewController(\_ pageViewController: EMPageViewController, isScrollingFrom startingViewController: UIViewController, destinationViewController: UIViewController?, progress: CGFloat) {+ public func pageViewController(\_ pageViewController: PageViewController, isScrollingFrom startingViewController: UIViewController, destinationViewController: UIViewController?, progress: CGFloat) {- open func em\_pageViewController(\_ pageViewController: EMPageViewController, willStartScrollingFrom startingViewController: UIViewController, destinationViewController: UIViewController) {+ public func pageViewController(\_ pageViewController: PageViewController, willStartScrollingFrom startingViewController: UIViewController, destinationViewController: UIViewController) {- open func em\_pageViewController(\_ pageViewController: EMPageViewController, didFinishScrollingFrom startingViewController: UIViewController?, destinationViewController: UIViewController, transitionSuccessful: Bool) {+ open func pageViewController(\_ pageViewController: PageViewController, didFinishScrollingFrom startingViewController: UIViewController, destinationViewController: UIViewController, transitionSuccessful: Bool) {}
    

    ๐Ÿš€ More details about the release can be found here: #452

  • v3.0.0-beta2

    September 28, 2020

    ๐Ÿ›  Fixed an issue building due to missing imports #526

  • v3.0.0-beta

    September 02, 2020

    ๐Ÿš€ This is pre-release for version 3.0. See #452 for more details on changes.

  • v2.4.0

    January 06, 2020
    • ๐Ÿ›  Fix PagingTitleCell label horizontal constraints (#480)
    • ๐Ÿ›  Fix regression causing menuInteraction property not to work properly (#486)
    • โšก๏ธ Reload data when updating paging items in SwiftUI (#470)
  • v2.3.0

    February 04, 2020
    • โž• Add support for SwiftUI (#460)
    • โž• Add support for self-sizing menu cells (#461)
    • ๐Ÿ– Handle menu background color change after viewDidLoad (#465)
  • v2.2.0

    March 21, 2020
    • โž• Add delegate method when selecting item (#450)
    • โšก๏ธ Update menu constraints when menuItemSize changes (#449)
  • v2.1.0

    November 03, 2020
    • โž• Add option to position menu vertically (#412)
    • Combine all example targets into single target (#442)
    • ๐Ÿ›  Fix missing import causing SwiftPM to fail (#420)
    • ๐Ÿ›  Fix memory leak occurring when configuring size cache (#433)
    • ๐Ÿ›  Fix issue with initial selection not being set (#438)
    • ๐Ÿ›  Fix regression causing indicator not to animate (#441)
    • ๐Ÿ›  Fix issues with invalidation of size cache (#444)
  • v2.0.1

    August 02, 2020
    • โœ‚ Remove unused file that was supposed to be removed in #304.
  • v2.0.0

    August 02, 2020

    ๐Ÿš€ This version introduces a couple of breaking changes that are outlined below. If you're having issues upgrading or you see other breaking changes that are not outlined below, please let us know. More details about the release can be found here: #243.

    โœ‚ Removed FixedPagingViewController

    ๐Ÿšš FixedPagingViewController has been removed. You can now initialize PagingViewController directly with an array of view controllers.

    -FixedPagingViewController(viewControllers: viewControllers)+PagingViewController(viewControllers: viewControllers)
    

    โœ‚ Removed generics (#285)

    ๐Ÿšš PagingViewController is not longer generic on the PagingItem type. This means that all places where you previously had to specify the generic type, or cast to generic type, can be removed.

    -PagingViewController\<CalendarItem\>()+PagingViewController()
    
    -func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, pagingItemForIndex index: Int) -\> T {- return PagingIndexItem(index: index, title: cities[index]) as! T-}+func pagingViewController(\_: PagingViewController, pagingItemAt index: Int) -\> PagingItem {+ return PagingIndexItem(index: index, title: cities[index])+}
    

    ๐Ÿšš Moved size delegate into separate protocol

    ๐Ÿšš The widthForPagingItem delegate method have been moved out of the PagingViewControllerDelegate and into a separate protocol called PagingViewControllerSizeDelegate. You now need to set the sizeDelegate property on PagingViewController:

    -pagingViewController.delegate = self+pagingViewController.sizeDelegate = self
    

    Replaced menuItemSource with register(cellClass:)

    ๐Ÿšš The menuItemSource property for customizing the cell type has been removed. Instead you can customize the cell type for a given PagingItem by using register(cellClass:) and register(nib:). The benefit of this approach is that we can support multiple cell types in the same menu (#390).

    - pagingViewController.menuItemSource = .class(type: CalendarPagingCell.self)+ pagingViewController.register(CalendarPagingCell.self, for: CalendarItem.self)
    

    โšก๏ธ Updated naming of data sources

    โšก๏ธ As well as removing generics from the data sources, the naming has also been updated to be a bit more Swift-y.

    protocol PagingViewControllerDataSource: class {- func numberOfViewControllers\<T\>(in pagingViewController: PagingViewController\<T\>) -\> Int+ func numberOfViewControllers(in pagingViewController: PagingViewController) -\> Int- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, viewControllerForIndex index: Int) -\> UIViewController+ func pagingViewController(\_: PagingViewController, viewControllerAt index: Int) -\> UIViewController- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, pagingItemForIndex index: Int) -\> T+ func pagingViewController(\_: PagingViewController, pagingItemAt index: Int) -\> PagingItem} protocol PagingViewControllerInfiniteDataSource: class {- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, viewControllerForPagingItem: T) -\> UIViewController+ func pagingViewController(\_: PagingViewController, viewControllerFor pagingItem: PagingItem) -\> UIViewController- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, pagingItemBeforePagingItem: T) -\> T?+ func pagingViewController(\_: PagingViewController, itemBefore pagingItem: PagingItem) -\> PagingItem?- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, pagingItemAfterPagingItem: T) -\> T?+ func pagingViewController(\_ : PagingViewController, itemAfter pagingItem: PagingItem) -\> PagingItem?}
    
  • v2.0.0-beta

    November 17, 2019

    ๐Ÿš€ Please help test this release and let us know if you find any issues! This version introduces a couple of breaking changes that are outlined below. If you're having issues upgrading or you see other breaking changes that are not outlined below, please let us know. More details about the release can be found here: #243.

    โœ‚ Removed FixedPagingViewController

    ๐Ÿšš FixedPagingViewController has been removed. You can now initialize PagingViewController directly with an array of view controllers.

    -FixedPagingViewController(viewControllers: viewControllers)+PagingViewController(viewControllers: viewControllers)
    

    โœ‚ Removed generics (#285)

    ๐Ÿšš PagingViewController is not longer generic on the PagingItem type. This means that all places where you previously had to specify the generic type, or cast to generic type, can be removed.

    -PagingViewController\<CalendarItem\>()+PagingViewController()
    
    -func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, pagingItemForIndex index: Int) -\> T {- return PagingIndexItem(index: index, title: cities[index]) as! T-}+func pagingViewController(\_: PagingViewController, pagingItemAt index: Int) -\> PagingItem {+ return PagingIndexItem(index: index, title: cities[index])+}
    

    ๐Ÿšš Moved size delegate into separate protocol

    ๐Ÿšš The widthForPagingItem delegate method have been moved out of the PagingViewControllerDelegate and into a separate protocol called PagingViewControllerSizeDelegate. You now need to set the sizeDelegate property on PagingViewController:

    -pagingViewController.delegate = self+pagingViewController.sizeDelegate = self
    

    Replaced menuItemSource with register(cellClass:)

    ๐Ÿšš The menuItemSource property for customizing the cell type has been removed. Instead you can customize the cell type for a given PagingItem by using register(cellClass:) and register(nib:). The benefit of this approach is that we can support multiple cell types in the same menu (#390).

    - pagingViewController.menuItemSource = .class(type: CalendarPagingCell.self)+ pagingViewController.register(CalendarPagingCell.self, for: CalendarItem.self)
    

    โšก๏ธ Updated naming of data sources

    โšก๏ธ As well as removing generics from the data sources, the naming has also been updated to be a bit more Swift-y.

    protocol PagingViewControllerDataSource: class {- func numberOfViewControllers\<T\>(in pagingViewController: PagingViewController\<T\>) -\> Int+ func numberOfViewControllers(in pagingViewController: PagingViewController) -\> Int- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, viewControllerForIndex index: Int) -\> UIViewController+ func pagingViewController(\_: PagingViewController, viewControllerAt index: Int) -\> UIViewController- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, pagingItemForIndex index: Int) -\> T+ func pagingViewController(\_: PagingViewController, pagingItemAt index: Int) -\> PagingItem} protocol PagingViewControllerInfiniteDataSource: class {- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, viewControllerForPagingItem: T) -\> UIViewController+ func pagingViewController(\_: PagingViewController, viewControllerFor pagingItem: PagingItem) -\> UIViewController- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, pagingItemBeforePagingItem: T) -\> T?+ func pagingViewController(\_: PagingViewController, itemBefore pagingItem: PagingItem) -\> PagingItem?- func pagingViewController\<T\>(\_ pagingViewController: PagingViewController\<T\>, pagingItemAfterPagingItem: T) -\> T?+ func pagingViewController(\_ : PagingViewController, itemAfter pagingItem: PagingItem) -\> PagingItem?}