swift的分段控制器

拖入PageTitleView的第三方

创建五个VIewController
import UIKit

class secViewController: UIViewController {

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()
// Do any additional setup after loading the view, typically from a nib.
self.title = “关注-我的”
self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: nil)
self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: nil)
view.backgroundColor = UIColor.white
view.addSubview(pageTitleView)
view.addSubview(pageContentView)

}
}
extension secViewController: 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)
}

}

猜你喜欢

转载自blog.csdn.net/WNEHIUZHNAG/article/details/86512706