KGFloatingDrawer抽屉组件的使用

    xiaoxiao2024-12-29  9

    http://devonios.com/kgfloatingdrawer.html

    前言

    抽屉组件用的还是比较多的,在swift项目中,我们可以使用KGFloatingDrawer这个项目来做,它的github地址:https://github.com/KyleGoddard/KGFloatingDrawer。

    使用起来还是很方便的,还提供了demo。这里记录下如何使用。

    第一步,创建需要显示的ViewController

    所谓抽屉组件,其实就是预先设置好几个界面(ViewController),打开App时默认显示中间的ViewController,当接收到打开左侧ViewController的命令时,中间的退下,左边的补上(其实就是使用了位置移动、转场效果等)。

    1)新建一个项目后,把默认的ViewController当作Center ViewController;

    2)新建两个View Controller文件,分别命名为LeftViewController和RightViewController;

    3)在storyboard文件中,拖入两个View Controller,把这2个View Controller分别关联LeftViewController和RightViewController。

    4)分别设置三个ViewController的StoryBoard ID为:left、center、right

    第二步,在AppDelegate中写代码

    首先加入下面代码。

    提供了一个KGDrawerViewController属性,最后需要把这个ViewController作为Root viewController。

    private var _drawerViewController: KGDrawerViewController? var drawerViewController: KGDrawerViewController { get { if let viewController = _drawerViewController { return viewController } return prepareDrawerViewController() } } func prepareDrawerViewController() -> KGDrawerViewController { let drawerViewController = KGDrawerViewController() drawerViewController.centerViewController = viewControllerForStoryboardId("center") drawerViewController.leftViewController = viewControllerForStoryboardId("left") drawerViewController.rightViewController = viewControllerForStoryboardId("right") //背景图片 drawerViewController.backgroundImage = UIImage(named: "sky3") _drawerViewController = drawerViewController return drawerViewController } private func drawerStoryboard() -> UIStoryboard { let storyboard = UIStoryboard(name: "Main", bundle: nil) return storyboard } private func viewControllerForStoryboardId(storyboardId: String) -> UIViewController { let viewController: UIViewController = drawerStoryboard().instantiateViewControllerWithIdentifier(storyboardId) as! UIViewController return viewController }

    在启动事件方法didFinishLaunchingWithOptions中,为window设置Root viewController:

    window = UIWindow(frame: UIScreen.mainScreen().bounds) window?.rootViewController = drawerViewController window?.makeKeyAndVisible()

    这样,默认界面就使用了KG提供的ViewController,它包含了我们创建的三个viewController,默认显示center。

    第三步,触发事件中,打开左边抽屉(LeftViewController)或者右边抽屉(RightViewController)

    在center viewController中,放置两个按钮,分别打开左边和右边的viewController。对应的action事件代码如下:

    @IBAction func leftViewShow(sender: UIButton) { let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate appDelegate.drawerViewController.toggleDrawer(KGDrawerSide.Left, animated: true) { (finished) -> Void in } } @IBAction func rightViewShow(sender: UIButton) { let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate appDelegate.drawerViewController.toggleDrawer(KGDrawerSide.Right, animated: true) { (finished) -> Void in } }

    效果

    转载请注明原文地址: https://ju.6miu.com/read-1295113.html
    最新回复(0)