WMPageController Swift 用法

一、方法方式处理

    @IBAction func btn1(_ sender: UIButton) {
        let vc =  customedPageController()
        vc.hidesBottomBarWhenPushed = true;
        self.navigationItem.backBarButtonItem = UIBarButtonItem.init()
        self.navigationController?.pushViewController(vc, animated: true

    }

    // MARK: - An example of `PageController`
    fileprivate func customedPageController() -> WMPageController {
        let vcClasses:[AnyClass] = [AllOrderVC().classForCoder,WaitPaymentOrderVC().classForCoder,WaitDeliveryOrderVC().classForCoder,WaitReceiveOrderVC().classForCoder,WaitEvaluateVC().classForCoder]
        let titles = ["全部订单", "待付款", "待发货", "待收货", "待评价"]
        let pageVC = WMPageController(viewControllerClasses: vcClasses, andTheirTitles: titles)
//        pageVC.tabBarController?.tabBar.isHidden = true
        pageVC.title="我的订单"
        pageVC.itemsWidths = [70,50,50,50,50]   //每个 MenuItem 的宽度‘
        pageVC.menuView?.frame = CGRect.init(x: 0, y: 0, width: DeviceMaxWidth, height: 44)    //导航栏高度
        pageVC.menuView?.backgroundColor = UIColor.red    //导航栏颜色
        pageVC.postNotification = true  //
        pageVC.bounces = true
        pageVC.titleSizeSelected=13    //选中时的标题尺寸
        pageVC.titleSizeNormal=14      //非选中时的标题尺寸
        pageVC.menuViewStyle = .line    //Menu view 的样式,默认为无下划线
        pageVC.titleColorSelected=UIColor.red    //标题选中时的颜色, 颜色是可动画的.
        pageVC.titleColorNormal=UIColor.black    //标题非选择时的颜色, 颜色是可动画的
        pageVC.scrollView?.height = 100

        return pageVC
    }

二  自定义 vc

 

//
//  CustomOrderVC.swift
//  ALSPetsMail
//
//  Created by 冰泪 on 2017/12/13.
//  Copyright © 2017年 冰泪. All rights reserved.
//

import UIKit
import WMPageController
class CustomOrderVC: WMPageController {
    let vcClasses:[AnyClass] = [AllOrderVC().classForCoder,WaitPaymentOrderVC().classForCoder,WaitDeliveryOrderVC().classForCoder,WaitReceiveOrderVC().classForCoder,WaitEvaluateVC().classForCoder]
    let titles1:[String] = ["全部订单", "待付款", "待发货", "待收货", "待评价"]
    private func createUI() {
        self.viewControllerClasses = vcClasses
        self.titles = titles1
        self.title="我的订单"
        self.itemsWidths = [80,50,50,50,50]   //每个 MenuItem 的宽度‘

//        self.menuView?.backgroundColor = UIColor.red    //导航栏颜色
        self.postNotification = true  //
        self.bounces = true
        self.titleSizeSelected=13    //选中时的标题尺寸
        self.titleSizeNormal=13     //非选中时的标题尺寸
        self.menuViewStyle = .line    //Menu view 的样式,默认为无下划线
        self.titleColorSelected=UIColor.red    //标题选中时的颜色, 颜色是可动画的.
        self.titleColorNormal=UIColor.black    //标题非选择时的颜色, 颜色是可动画的
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        createUI()
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
}
extension CustomOrderVC {
    override func numbersOfChildControllers(in pageController: WMPageController) -> Int {
        return titles1.count
    }
    override func pageController(_ pageController: WMPageController, viewControllerAt index: Int) -> UIViewController {
        let vc : UIViewController!
        switch index {
        case 0:
            vc = AllOrderVC()
        case 1:
            vc = WaitPaymentOrderVC()
        case 2:
            vc = WaitDeliveryOrderVC()
        case 3:
            vc = WaitReceiveOrderVC()
        default:
            vc = WaitEvaluateVC()
        }
        return vc
    }
    
    override func pageController(_ pageController: WMPageController, titleAt index: Int) -> String {
        return titles1[index]
    }
    
    override func pageController(_ pageController: WMPageController, preferredFrameFor menuView: WMMenuView) -> CGRect {
        let navH:CGFloat! = (self.navigationController?.navigationBar.max_y)
       return CGRect(x: 0, y: navH, width: DeviceMaxWidth, height: 45)
    }
    override func pageController(_ pageController: WMPageController, preferredFrameForContentView contentView: WMScrollView) -> CGRect {
        let navH:CGFloat! = (self.navigationController?.navigationBar.max_y)
    
        return CGRect.init(x: 0, y: navH+45, width: DeviceMaxWidth, height: DeviceMaxHeight-navH-45)
    }
}

 

    /// 获取或设置 y
    public var max_y: CGFloat {
        get {
            return frame.origin.y + frame.size.height
        }
        set {
            frame.origin.y = max_y - frame.size.height
        }
    }

 

 

 

 

 

转载于:https://my.oschina.net/iceTear/blog/1589561

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值