测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017 年 9 月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Raffaele Cerullo 维护。
STWPageViewController 允许快速简单地创建控制器容器 (UIPageViewController),它由可自定义的工具栏管理。STWPageViewController 可以独立加载或在 UINavigationController 中加载,工具栏将自动适应显示需求。
CocoaPods
pod 'STWPageViewController'
使用 pages
作为简单控制器直接 Init
设置子控制器的标题,将自动创建项目
...
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
let firstController = UIViewController()
let secondController = UIViewController()
firstController.title = "First"
firstController.view.backgroundColor = .orange
secondController.title = "Second"
secondController.view.backgroundColor = .blue
let pages = [firstController, secondController]
let pageViewController = STWPageViewController(pages: pages)
self.window?.rootViewController = pageViewController
self.window?.makeKeyAndVisible()
}
...
将 pages
添加到 init
之后作为 UINavigationController
的 rootController
您可以通过设置 STWPageViewControllerToolBarItem'
标题、颜色或图标来自定义工具栏项设置
...
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
let firstController = UIViewController()
let secondController = UIViewController()
firstController.pageViewControllerToolBarItem = STWPageViewControllerToolBarItem(title: "First", normalColor: .orange, selectedColor: .red)
firstController.view.backgroundColor = .orange
secondController.pageViewControllerToolBarItem = STWPageViewControllerToolBarItem(image: UIImage(named :"iconDefault"), selectedImage: UIImage(named :"iconSelected"))
secondController.view.backgroundColor = .blue
let pageViewController = STWPageViewController()
let navigationController = UINavigationController(rootViewController: pageViewController)
let pages = [firstController, secondController]
pageViewController.setPages(pages: pages)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()
}
...
STWPageViewController
有两个方法,用于了解将呈现哪个控制器以及已呈现的控制器,以及它们在 pages
中的索引
class ViewController: STWPageViewController, STWPageViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
}
...
func pageControllerDidPresentPage(viewController:UIViewController, pageIndex:Int) {
print("DidPresent: \(viewController) page:\(pageIndex)")
}
func pageControllerWillPresentPage(viewController:UIViewController, pageIndex:Int) {
print("WillPresent: \(viewController) page:\(pageIndex)")
}
您可以根据您的所有需求自定义 STWPageViewController
的许多方面
STWPageViewController 设置属性:
startPage
控制器起始索引
init
定义 startPage
let pageViewController = STWPageViewController(pages: pages, startPage:1)
// default: 0
toolBarHeight
工具栏高度。
var toolBarHeight: CGFloat { get set }
// default: 44 + (status bar height if needs)
isPageControllerScrollingEnabled
启用水平滚动页面。
var isPageControllerScrollingEnabled: Bool { get set }
// default: true
STWPageViewControllerToolBar 设置属性:
indicatorBarPadding
指示器条偏移。
var indicatorBarPadding: CGFloat { get set }
// default: 0
indicatorBarHeight
指示器条高度。
var indicatorBarHeight: CGFloat { get set }
// default: 4
indicatorBarTintColor
指示器条颜色。
var indicatorBarTintColor: UIColor { get set }
// default: .black
STWPageViewController 获取属性:
currentIndexPage
当前可见控制器索引。
var currentIndexPage: Int { get }
visibleViewController
当前可见控制器。
var visibleViewController: UIViewController? { get }
STWPageViewController 公共方法:
setPages(pages:[UIViewController], startPage:Int? = 0)
指定或更新视图控制器栈是什么以及要呈现的第一页索引
func setPages(pages:[UIViewController], startPage:Int? = 0)
scrollToPage(_ indexPage:Int?, animated:Bool)
在指定索引滚动 STWPageViewController。
func scrollToPage(_ indexPage:Int?, animated:Bool)
此 Pod 需要iOS 9.0 或更高版本的部署目标
STWPageViewController 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。