Swift --滚动菜单--父子控制器

这篇博客介绍了如何在Swift中使用PageTitleView库创建滚动菜单,并且详细阐述了如何设置菜单项的颜色、字体等样式,以及如何实现菜单与子控制器间的交互,包括切换页面时的回调和滚动过程中标题的平滑过渡效果。

首先我们需要下载一个第三方
PageTitleView
然后输入创建"VCTwo"视图继承控制器

然后需要在父子控制器创建你需要的子控制器用于书写界面

private lazy var pageTitleView: MFPageTitleView = {
let config = MFPageTitleViewConfig()
config.titleColor = colorWithRGB(r: 43, g: 43, b: 43)
config.titleSelectedColor = colorWithRGB(r: 211, g: 0, b: 0)
config.titleFont = UIFont.systemFont(ofSize: 14, weight: .regular)
config.indicatorColor = colorWithRGB(r: 211, g: 0, b: 0)
let pageTitleView = MFPageTitleView(frame: CGRect(x: 0, y: navHeight, width: SCREEN_WIDTH, height: 41), titles: [“关注”, “推荐”, “热点”, “世界杯”, “小视频”], config: config)
pageTitleView.pageTitleViewDelegate = self
return pageTitleView
}()

private lazy var pageContentView: MFPageContentView = {
    var childControllers = [UIViewController]()
    var arr:[UIViewController]=[GuanZ(),TuiJ(),ReD(),ShiJB(),XiaoSP()]
    for i in 0..<5 {
        childControllers.append(arr[i])
    }
    
    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
    return pageContentView
}()

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = UIColor.white
    view.addSubview(pageTitleView)
    view.addSubview(pageContentView)
    //导航条标题
    let vc = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 40))
    let iam = UIImageView(frame: CGRect(x: 0, y: 0, width: 100, height: 40))
    iam.image=UIImage(named: "标题")
    vc .addSubview(iam)
    self.navigationItem.titleView=vc
    
}

}

extension VCTwo: 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、付费专栏及课程。

余额充值