A Material Design drop down menu for iOS apps, written in Swift.
DropDown is an open-source iOS library that implements a Material Design-style drop down menu component written in Swift. It provides developers with an easy-to-integrate, customizable alternative to native iOS pickers, featuring smooth animations and a clean visual design that follows Google's Material Design guidelines.
iOS developers building apps that require drop down selection menus, particularly those seeking Material Design aesthetics or more customization options than standard UIPickerView offers.
Developers choose DropDown for its Material Design compliance, simple integration, and high customizability—allowing them to create polished drop down menus with minimal code while maintaining full control over appearance and behavior.
A Material Design drop down for iOS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements Google's Material Design with proper shadows, animations, and visual feedback, offering a polished alternative to standard iOS pickers as shown in the screenshot examples.
Simple API allows setup with minimal code—just set anchorView and dataSource, then call show(), making it quick to add drop-downs without boilerplate.
Supports custom cell designs via XIB files and configuration closures, enabling fully tailored appearances, as detailed in the Advanced usage section with examples.
Configurable display directions, offsets, and multiple dismiss modes (onTap, automatic, manual) provide control over user interactions and layout adaptability.
The library is built around Material Design aesthetics, which can clash with apps following iOS's native design language, limiting thematic flexibility.
Requires calling DropDown.startListeningToKeyboard() in AppDelegate for proper keyboard handling, adding an extra step that's easy to overlook in configuration.
No native support for SwiftUI, making it cumbersome for modern iOS projects built entirely with SwiftUI without bridging layers or alternatives.
As noted in the Issues section, setting cornerRadius directly causes compiler errors, forcing developers to use the setupCornerRadius() method—a minor but frustrating inconsistency.