Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/qmathe/DropDownMenuKit

UIKit drop down menu, simple yet flexible and written in Swift
https://github.com/qmathe/DropDownMenuKit

control dropdown dropdown-menu ios menu navigation navigation-bar popup swift tableview ui uikit

Last synced: 3 months ago
JSON representation

UIKit drop down menu, simple yet flexible and written in Swift

Awesome Lists containing this project

README

        

DropDownMenuKit
===============

[![Build Status](https://travis-ci.org/qmathe/DropDownMenuKit.svg?branch=master)](https://travis-ci.org/qmathe/DropDownMenuKit)
[![Platforms iOS](https://img.shields.io/badge/Platforms-iOS-lightgray.svg?style=flat)](http://www.apple.com)
[![Language Swift 5](https://img.shields.io/badge/Language-Swift%205-orange.svg?style=flat)](https://swift.org)
[![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/qmathe/DropDownMenuKit/LICENSE)

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

Screenshot
Screenshot

To see in action, take a look at the very beginning of [Placeboard](http://www.placeboardapp.com) demo video.

Compatibility
-------------

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.

Installation
------------

### Carthage

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"

### CocoaPods

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

pod "DropDownMenuKit"

### Manually

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

#### Framework

Build DropDownMenuKit framework and drop it into your Xcode project.

#### Files

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_.

### Restrictions

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