[IOSS]左右侧边栏

来源:互联网 发布:linux 复制并且重命名 编辑:程序博客网 时间:2024/05/03 13:46

[IOSS]左右侧边栏


DEMO:http://download.csdn.net/detail/u012881779/9226539


应用入口(AppDelegate.swift

import UIKit@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate {    var window: UIWindow?    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {                window = UIWindow(frame: UIScreen.mainScreen().bounds)        window?.backgroundColor = UIColor.whiteColor()                let sidebar = DMSidebarViewController()        let nav = UINavigationController(rootViewController: sidebar)        nav.navigationBarHidden = true        window?.rootViewController = nav                window?.makeKeyAndVisible()                return true    }    func applicationWillResignActive(application: UIApplication) {   }}
侧栏管理(DMSidebarViewController.swift)
import UIKitclass DMSidebarViewController: UIViewController {    let LeftWidthFloat  : CGFloat = 150.0;    let RightWidthFloat : CGFloat = 200.0;    let screenRect = UIScreen.mainScreen().bounds    var leftVC  = DMLeftViewController()    var homeVC  = DMHomeViewController()    var rightVC = DMRightViewController()        override func viewDidLoad() {        super.viewDidLoad()        let screenRect = UIScreen.mainScreen().bounds        leftVC.view.frame = CGRectMake(-screenRect.size.width, 0, screenRect.size.width, screenRect.size.height)        leftVC.sidebarVC = self        self.view.addSubview(leftVC.view)                homeVC.view.frame = CGRectMake(0, 0, screenRect.size.width, screenRect.size.height)        homeVC.sidebarVC = self        self.view.addSubview(homeVC.view)                rightVC.view.frame = CGRectMake(screenRect.size.width, 0, screenRect.size.width, screenRect.size.height)        rightVC.sidebarVC = self        self.view.addSubview(rightVC.view)            }        //弹出左侧栏    func popUpLeftAction(){        UIView.animateWithDuration(0.3, animations: {            self.leftVC.view.frame = CGRectMake(-self.screenRect.size.width + self.LeftWidthFloat, 0, self.screenRect.size.width, self.screenRect.size.height)            self.view.addSubview(self.leftVC.view)                        self.homeVC.view.frame = CGRectMake(0 + self.LeftWidthFloat, 0, self.screenRect.size.width, self.screenRect.size.height)            self.view.addSubview(self.homeVC.view)                        self.rightVC.view.frame = CGRectMake(self.screenRect.size.width + self.LeftWidthFloat, 0, self.screenRect.size.width, self.screenRect.size.height)            self.view.addSubview(self.rightVC.view)                        }, completion:{(finished : Bool) -> Void in                })    }        //页面归原位    func popUpHomeAction(){        UIView.animateWithDuration(0.3, animations: {            self.leftVC.view.frame = CGRectMake(-self.screenRect.size.width, 0, self.screenRect.size.width, self.screenRect.size.height)            self.view.addSubview(self.leftVC.view)                        self.homeVC.view.frame = CGRectMake(0, 0, self.screenRect.size.width, self.screenRect.size.height)            self.view.addSubview(self.homeVC.view)                        self.rightVC.view.frame = CGRectMake(self.screenRect.size.width, 0, self.screenRect.size.width, self.screenRect.size.height)            self.view.addSubview(self.rightVC.view)                        }, completion:{(finished : Bool) -> Void in                        })    }        //弹出右侧栏    func popUpRightAction(){        UIView.animateWithDuration(0.3, animations: {            self.leftVC.view.frame = CGRectMake(-self.screenRect.size.width - self.RightWidthFloat, 0, self.screenRect.size.width, self.screenRect.size.height)            self.view.addSubview(self.leftVC.view)                        self.homeVC.view.frame = CGRectMake(0 - self.RightWidthFloat, 0, self.screenRect.size.width, self.screenRect.size.height)            self.view.addSubview(self.homeVC.view)                        self.rightVC.view.frame = CGRectMake(self.screenRect.size.width - self.RightWidthFloat, 0, self.screenRect.size.width, self.screenRect.size.height)            self.view.addSubview(self.rightVC.view)                        }, completion:{(finished : Bool) -> Void in                        })    }} 
首页(DMHomeViewController.swift)
import UIKitclass DMHomeViewController: DMBaseViewController {    var sidebarVC : DMSidebarViewController!    var leftPanGesture = UISwipeGestureRecognizer()    var rightPanGesture = UISwipeGestureRecognizer()    override func viewDidLoad() {        super.viewDidLoad()        //向左方向滑动        leftPanGesture.direction = UISwipeGestureRecognizerDirection.Left        leftPanGesture.addTarget(self, action: "tapRightSideAction:")        self.view.addGestureRecognizer(leftPanGesture)                //向右方向滑动        rightPanGesture.direction = UISwipeGestureRecognizerDirection.Right        rightPanGesture.addTarget(self, action: "tapLeftSideAction:")        self.view.addGestureRecognizer(rightPanGesture)    }    //点击按钮弹出左边栏    @IBAction func tapLeftSideAction(sender: AnyObject) {        if(self.view.frame.origin.x == 0){            sidebarVC.popUpLeftAction()        }else{            sidebarVC.popUpHomeAction()        }    }       //点击按钮弹出右边栏    @IBAction func tapRightSideAction(sender: AnyObject) {        if(self.view.frame.origin.x == 0){            sidebarVC.popUpRightAction()        }else{            sidebarVC.popUpHomeAction()        }    }} 

示意图:


0 0
原创粉丝点击