Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maxkonovalov/MKDropdownMenu
🔻 Dropdown Menu for iOS with many customizable parameters to suit any needs
https://github.com/maxkonovalov/MKDropdownMenu
dropdown dropdown-menus dropdownmenu dropdowns ios ios-ui objective-c picker xcode
Last synced: 3 months ago
JSON representation
🔻 Dropdown Menu for iOS with many customizable parameters to suit any needs
- Host: GitHub
- URL: https://github.com/maxkonovalov/MKDropdownMenu
- Owner: maxkonovalov
- License: mit
- Created: 2016-03-20T20:52:04.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-08T08:36:15.000Z (over 6 years ago)
- Last Synced: 2024-04-24T14:50:38.779Z (6 months ago)
- Topics: dropdown, dropdown-menus, dropdownmenu, dropdowns, ios, ios-ui, objective-c, picker, xcode
- Language: Objective-C
- Homepage:
- Size: 14.4 MB
- Stars: 531
- Watchers: 17
- Forks: 83
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - MKDropdownMenu - A Dropdown Menu for iOS with many customizable parameters to suit any needs. (UI / Menu)
- awesome-ios-star - MKDropdownMenu - A Dropdown Menu for iOS with many customizable parameters to suit any needs. (UI / Menu)
README
# MKDropdownMenu
[![Build Status](https://travis-ci.org/maxkonovalov/MKDropdownMenu.svg?branch=master&style=flat)](https://travis-ci.org/maxkonovalov/MKDropdownMenu)
[![Version](https://img.shields.io/cocoapods/v/MKDropdownMenu.svg?style=flat)](http://cocoapods.org/pods/MKDropdownMenu)
[![License](https://img.shields.io/cocoapods/l/MKDropdownMenu.svg?style=flat)](http://cocoapods.org/pods/MKDropdownMenu)
[![Platform](https://img.shields.io/cocoapods/p/MKDropdownMenu.svg?style=flat)](http://cocoapods.org/pods/MKDropdownMenu)Dropdown Menu for iOS with many customizable parameters to suit any needs.
Inspired by UIPickerView.
## Installation
### CocoaPods`MKDropdownMenu` is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:```ruby
pod 'MKDropdownMenu'
```### Manually
- Add `MKDropdownMenu` folder to your Xcode project.
- `#import "MKDropdownMenu.h"` in your code.## Usage
See the example Xcode project.### Basic setup
Create the `MKDropdownMenu` instance and add it as a subview to your view. Set the `dataSource` and `delegate` properties to your view controller implementing `MKDropdownMenuDataSource` and `MKDropdownMenuDelegate` protocols.
```objc
MKDropdownMenu *dropdownMenu = [[MKDropdownMenu alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
dropdownMenu.dataSource = self;
dropdownMenu.delegate = self;
[self.view addSubview:dropdownMenu];
```### Interface Builder
You can also set up the `MKDropdownMenu` in Interface Builder.
- Add a `UIView` and set its class to `MKDropdownMenu` in the Identity inspector.
- Connect the `dataSource` and `delegate` outlets to your view controller.### Populating the data
The `MKDropdownMenuDataSource` and `MKDropdownMenuDelegate` protocols APIs are inspired by the `UIPickerView` interface, so most of the methods should be familiar if you used it before.
Implement the following `dataSource` methods:
```objc
- (NSInteger)numberOfComponentsInDropdownMenu:(MKDropdownMenu *)dropdownMenu;
- (NSInteger)dropdownMenu:(MKDropdownMenu *)dropdownMenu numberOfRowsInComponent:(NSInteger)component;
```and the `delegate` methods that suit your needs. The most simple way to get started is to provide the titles for the header components and the rows in the following `delagate` methods:
```objc
- (NSString *)dropdownMenu:(MKDropdownMenu *)dropdownMenu titleForComponent:(NSInteger)component;
- (NSString *)dropdownMenu:(MKDropdownMenu *)dropdownMenu titleForRow:(NSInteger)row forComponent:(NSInteger)component;
```You can also provide an `NSAttributedString` or custom `UIView` as the display data for `MKDropdownMenu` in the corresponding `delegate` methods.
### Customizations
The appearance and behavior of the `MKDropdownMenu` can be customized by setting its property values or implementing the corresponding `delegate` methods.
The default menu appearance can be customized throughout the app using the available `UI_APPEARANCE_SELECTOR` properties.
## Requirements
- iOS 8+
- Xcode 8+## License
`MKDropdownMenu` is available under the MIT license. See the LICENSE file for more info.