用Swift重写著名侧滑框架ICSDrawerController

jopen 9年前

根据著名侧滑框架ICSDrawerController的源代码,重新用Swift写了一遍,并且做了功能优化,方便用Swift的用户直接进行集成使用

主要使用的类是SCSDrawerViewController.swift
该类提供了close()和open()的方法,可以方便的在外界直接开启和关闭侧滑
具体用法可以在Appdelegate里面将控制器作为成员变量

  • var drawerVc:SCSDrawerViewController!
let colorVc = SCSColorsViewController() let planVc = SCSPlainColorViewController() let nav = NavViewController(rootViewController:planVc)   drawerVc = SCSDrawerViewController(leftViewController: colorVc, centerViewController: nav)   window!.rootViewController = drawerVc 

在需要关闭的类里面定义关闭按钮,按钮的点击事件里面调用关闭方法:

let appdelegate = UIApplication.sharedApplication().delegate as? AppDelegate    appdelegate!.drawerVc.close()

同时还提供了刷新当前主控制器的方法和替换当前主控制的方法

func reloadCenterViewControllerUsingBlock(reloadBlock:() -> ())
func replaceCenterViewControllerWithViewController(viewController:protocol<SCSDrawerControllerChild, SCSDrawerControllerPresenting>)

以及不带动画效果的替换当前主控制器的方法

func replaceCenterViewControllerWithViewControllerNoanimate(viewController:protocol<SCSDrawerControllerChild, SCSDrawerControllerPresenting>)

因为原作者的侧滑手势用的是pan手势,这样在主控制进行push动作的时候,会影响push控制器的edgePan手势,所以我在此基础上进行了修改侧滑打开替换成UISrceenEdgePan手势,关闭还是使用Pan手势

如果需要OC版的代码,请访问原作者的GitHub地址:
https://github.com/icecreamstudios/ICSDrawerController

原作者的Demo效果:


项目主页:http://www.open-open.com/lib/view/home/1450010654781