swift的分段控制器

这篇博客介绍了如何在Swift中使用第三方库PageTitleView创建分段控制器。通过创建五个不同的ViewController,并配置颜色、字体和指示器样式,实现了分段控制器的显示。同时,使用MFPageContentView来管理子控制器的页面滑动效果,实现了页面内容的切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拖入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)
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值