A paging view with a highly customizable menu ✨
Version 4.0 introduced a new and improved API for PageView in SwiftUI. Each page can now show define their own menu items, which can be any SwiftUI view. The new API also supports result builders, which allows you to easily setup your PageView. See more in the README.
PageView {
Page("Title 1") {
Text("Page 1")
}
Page { _ in
Image(systemName: "star.fill")
} content: {
Text("Page 2")
}
}
pagingContentBackgroundColor
property #592contentInteraction
property into PagingOptions
#593Changes:
This version introduces some breaking changes:
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
Fixed an issue building due to missing imports #526
This is pre-release for version 3.0. See #452 for more details on changes.