Skip to content


Repository files navigation


Build Status Platforms iOS Language Swift 5 License MIT

DropDownMenuKit is a custom UIKit control to show a menu attached to the navigation bar or toolbar. The menu appears with a sliding animation and can be deeply customized. For example, with icons, embedded controls, or a checkmark to denote a selected row among multiple menu cells.

The control is made up of three parts:

  • DropDownMenu: the menu itself, a UIView subclass that contains a UITableView presenting one or more DropDownMenuCell(s)
  • DropDownMenuCell: a menu entry, implemented as a UITableViewCell subclass
  • DropDownMenuTitleView: an optional title view to toggle the menu, which is usually put in the navigation bar and acts as a disclosure indicator



To see in action, take a look at the very beginning of Placeboard demo video.


DropDownMenuKit requires at least Xcode 10.2 (introducing Swift 5) and supports iOS 11 and higher.

For versions compatible with Swift 3 and 4, see branches named swift-3/4.x.

For now, the code base remains compatible with older iOS versions (8 or higher), but these older versions are not supported anymore.



Add the following line to your Cartfile, run carthage update to build the framework and drag the built DropDownMenuKit.framework into your Xcode project.

github "qmathe/DropDownMenuKit"


Add the following lines to your Podfile and run pod install with CocoaPods 1.9 or newer.

pod "DropDownMenuKit"


If you don't use Carthage or CocoaPods, it's possible to drag the built framework or embed the source files into your project.


Build DropDownMenuKit framework and drop it into your Xcode project.


Drop DropDownMenu.swift, DropDownMenuCell.swift, DropDownTitleView.swift and DropDownMenuKit.xcassets into your Xcode project.

App Extension Usage

Build Settings

Add -DAPP_EXTENSION to DropDownMenuKit > Build Settings > Other Swift Flags.


  • DropDownMenuCell.menuAction must take a single argument
  • DropDownMenuCell.menuTarget must not be nil