Skip to content

A floating navigation drawer with an interesting animated presentation written in Swift.


Notifications You must be signed in to change notification settings


Repository files navigation


KGFloatingDrawer is a reimplementation of JVillella/JVFloatingDrawer in Swift. A floating drawer style navigation. KGFloatingDrawer provides a unique twist on the nav drawer pattern.


Currently working on updating this for Swift 3 and to take care of some of the reported issues.


func prepareDrawerViewController() -> KGDrawerViewController {
    let drawerViewController = KGDrawerViewController()

    drawerViewController.centerViewController = drawerSettingsViewController()
    drawerViewController.leftViewController = leftViewController()
    drawerViewController.rightViewController = rightViewController()
    drawerViewController.backgroundImage = UIImage(named: "sky3")

    _drawerViewController = drawerViewController

    return drawerViewController


KGFloatingDrawer can be installed as a CocoaPod. To install it, simply add the following line to your Podfile:

pod 'KGFloatingDrawer', '~> 0.2.0'

###Important Note

KGFloatingDrawer requires Swift 2.0, Xcode 7.0 and CocoaPods 0.36.0

#How it Works


The KGDrawerViewController maintains references to center, left and optionally right view controllers. The centerViewController, leftViewController and rightViewController properties can all be reassigned in order to replace them.

###Opening & Closing Drawers

KGDrawerViewController has three functions used to open and close the nav drawer.

func openDrawer(side: KGDrawerSide, animated:Bool, complete: (finished: Bool) -> Void) {}

func closeDrawer(side: KGDrawerSide, animated: Bool, complete: (finished: Bool) -> Void) {}

func toggleDrawer(side: KGDrawerSide, animated: Bool, complete: (finished: Bool) -> Void) {}

###Drawer Width

The leftDrawerWidth and rightDrawerWidth are used to set the width of the drawer once it has been opened. Note that this is not the edge size of the centerViewController. The default value for this is 280 points.

###Background Image

The background image displayed when the drawer is open is set via the backgroundImage property.


KGFloatingDrawer comes with a spring animator with the configurable properties: animationDelay, animationDuration, initialSpringVelocity, and springDamping

But JVillella/JVFloatingDrawer has custom animators!?

I know! The ability to set a custom animator is coming soon.


Kyle Goddard

JVillella/JVFloatingDrawer was authored by Julian Villella


KGFloatingDrawer is available under the MIT license. See the LICENSE file for more info.


A floating navigation drawer with an interesting animated presentation written in Swift.







No packages published

Contributors 4