STWPageViewController 0.1.5

STWPageViewController 0.1.5

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017 年 9 月
SwiftSwift 版本3.0
SPM支持 SPM

Raffaele Cerullo 维护。



STWPageViewController



STWPageViewController 允许快速简单地创建控制器容器 (UIPageViewController),它由可自定义的工具栏管理。STWPageViewController 可以独立加载或在 UINavigationController 中加载,工具栏将自动适应显示需求。

Demo Demo Demo Demo

安装

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 之后作为 UINavigationControllerrootController

您可以通过设置 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 工具栏高度。
    自动调整以适应 UIApplication 状态栏状态

    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 或更高版本的部署目标

作者

@Steewitter[email protected]

许可证

STWPageViewController 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。