Releases: rechsteiner/Parchment
v3.0.0-beta2
Fixed an issue building due to missing imports #526
v3.0.0-beta
This is pre-release for version 3.0. See #452 for more details on changes.
v2.4.0
v2.3.0
v2.2.0
v2.1.0
- 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
v2.0.0
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
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?
}