BabuPagerViewController 0.1.1

BabuPagerViewController 0.1.1

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2015年9月
SPM支持 SPM

BABUKUMA 维护。




  • BABUKUMA

BabuPagerViewController

带有标签的水平滚动 UIPageViewController。

屏幕截图

Screenshots_1 Screenshots_2

要求

支持 iOS 8 和 Swift

安装

2. 或者您可以直接将 ‘BabuPagerViewController.swift’ 复制到您的项目中。

如何使用

1. 将 BabuPagerViewController 作为子类创建

class ViewController: BabuPagerViewController, BabuPagerViewControllerDataSource, BabuPagerViewControllerDelegate {
  var titles = ["red", "blue", "green", "yellow", "cyan"]

  override func viewDidLoad() {
    super.viewDidLoad()

    self.dataSource = self
    self.delegate = self

  }

  ...

  // MARK: - BabuPagerViewControllerDataSource
  func numberOfPagerItem() -> Int {
    return self.titles.count
  }

  func titleForTab(index: Int) -> String {
    return self.titles[index]
  }

  func pagerItemViewController(index: Int) -> UIViewController {
    var viewController = self.storyboard!.instantiateViewControllerWithIdentifier("pageItem") as! UIViewController
    viewController.title = self.titles[index]
    return viewController
  }

  // MARK: - BabuPagerViewControllerDelegate
  func pagerViewController(pagerViewController: BabuPagerViewController, willTransitionToViewController: AnyObject) {
    ...
  }

  func pagerViewController(pagerViewController: BabuPagerViewController, didFinishAnimating finished: Bool) {
    // You can get the current index.
    let pageIndex = pagerViewController.currentIndex()
    ...
  }
}

2. 如果需要,在 Storyboard 中连接到HeaderView

headerView

3. 如果需要,在 Storyboard 中连接到 tabView

tabView

4. 您可以选择将 tabView 放在顶部或底部。

tabViewBottom

class BabuPagerViewController

1. Storyboard 中的可检查值。

IBInspectable

  • tabIsBottom : 如果为 true,则页面项位于头部和标签之间
  • tabActivatedTextColor : 已激活的标签视图的文字颜色
  • tabInactivatedTextColor : 未激活的标签视图的文字颜色
  • tabFontSize : 标签视图的字体大小
  • tabUseActivatedBoldText : 如果激活则使用粗体文字

2. 方法

func currentIndex() -> Int

返回当前页面的索引

协议 BabuPagerViewControllerDataSource

1. func numberOfPagerItem() -> Int

询问数据源返回页面视图中的项目数

func numberOfPagerItem() -> Int {
    return self.titles.count
}

2. func pagerItemViewController(index: Int) -> UIViewController

询问页面元素

func pagerItemViewController(index: Int) -> UIViewController {
  var viewController = self.storyboard!.instantiateViewControllerWithIdentifier("pageItem") as! UIViewController
  viewController.title = self.titles[index]
  return viewController
}

3. func titleForTab(index: Int) -> String

询问数据源为标签标题

func titleForTab(index: Int) -> String {
  return self.titles[index]
}

协议 BabuPagerViewControllerDelegate

1. func pagerViewController(pagerViewController: BabuPagerViewController, willTransitionToViewController: AnyObject)

在开始手势控制的转换之前调用。

func pagerViewController(pagerViewController: BabuPagerViewController, willTransitionToViewController: AnyObject) {
    println("called willTransitionToViewController")
}

2. func pagerViewController(pagerViewController: BabuPagerViewController, didFinishAnimating finished: Bool)

在完成手势控制转换后调用。

func pagerViewController(pagerViewController: BabuPagerViewController, didFinishAnimating finished: Bool) {
    println("called didFinishAnimating")
    let pageIndex = pagerViewController.currentIndex()
    ...
}