Skip to content
A floating navigation drawer with an interesting animated presentation written in Swift.
Branch: master
Clone or download
Latest commit 63e8bf7 Nov 28, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example Updates xcode project settings Oct 19, 2015
KGFloatingDrawer.podspec - Updated to swift 2.0 Sep 20, 2015
LICENSE Initial commit. Mar 1, 2015


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.

You can’t perform that action at this time.