1.导入第三方PageTitleView
2.App中写入导航
let VC = ViewController()
let Nav = UINavigationController(rootViewController: VC)
self.window?.rootViewController = Nav
3.view中写内容
var childControllers = 后面写上自己创建的几个ViewController视图
private lazy var pageTitleView: MFPageTitleView = {
let config = MFPageTitleViewConfig()
config.titleColor = colorWithRGB(r: 43, g: 43, b: 43)
config.titleSelectedColor = colorWithRGB(r: 133, g: 84, b: 233)
config.titleFont = UIFont.systemFont(ofSize: 17, weight: .regular)
config.indicatorColor = colorWithRGB(r: 133, g: 84, b: 233)
let pageTitleView = MFPageTitleView(frame: CGRect(x: 0, y: navHeight, width: SCREEN_WIDTH, height: 41), titles: ["推荐", "快讯", "深度", "时点对话", "行请分析"], config: config)
pageTitleView.pageTitleViewDelegate = self as MFPageTitleViewDelegate
return pageTitleView
}()
private lazy var pageContentView: MFPageContentView = {
var childControllers = [OneViewController(),TwoViewController(),ThreeViewController(),FourViewController(),FiveViewController()]
for var k in 0..<5 {
let vc = childControllers[k]
let red: CGFloat = CGFloat(arc4random() % 256)
let green: CGFloat = CGFloat(arc4random() % 256)
let blue: CGFloat = CGFloat(arc4random() % 256)
vc.view.backgroundColor = UIColor(red: red / 255.0, green: green / 255.0, blue: blue / 255.0, alpha: 1.0)
//childControllers.append(vc)
}
let pageContentViewY = pageTitleView.frame.maxY
let pageContentView = MFPageContentView(frame: CGRect(x: 0, y: pageContentViewY, width: SCREEN_WIDTH, height: SCREEN_HEIGHT-pageContentViewY), parentVC: self, childVCs: childControllers)
pageContentView.pageContentViewDelegate = self as MFPageContentViewDelegate
return pageContentView
}()
override func viewDidLoad() {
super.viewDidLoad()
self.title = "布洛克科技"
view.backgroundColor = UIColor.white
view.addSubview(pageTitleView)
view.addSubview(pageContentView)
}
}
extension ViewController: MFPageTitleViewDelegate, MFPageContentViewDelegate {
func selectedIndexInPageTitleView(pageTitleView: MFPageTitleView, selectedIndex: Int) {
self.pageContentView.setPageContentViewCurrentIndex(currentIndex: selectedIndex)
}
func pageContentViewScroll(progress: CGFloat, originalIndex: Int, targetIndex: Int) {
self.pageTitleView.setPageTitleView(progress: progress, originalIndex: originalIndex, targetIndex: targetIndex)
}