Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Azuritul/AZDropdownMenu
A simple dropdown menu component for iPhone
https://github.com/Azuritul/AZDropdownMenu
dropdown menu menu-navigation swift
Last synced: about 1 month ago
JSON representation
A simple dropdown menu component for iPhone
- Host: GitHub
- URL: https://github.com/Azuritul/AZDropdownMenu
- Owner: Azuritul
- License: mit
- Archived: true
- Created: 2016-01-06T15:23:16.000Z (about 9 years ago)
- Default Branch: develop
- Last Pushed: 2018-12-27T04:51:09.000Z (about 6 years ago)
- Last Synced: 2024-10-29T11:06:32.231Z (3 months ago)
- Topics: dropdown, menu, menu-navigation, swift
- Language: Swift
- Homepage: http://azuritul.github.io/AZDropdownMenu
- Size: 166 KB
- Stars: 193
- Watchers: 9
- Forks: 50
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - AZDropdownMenu - An easy to use dropdown menu that supports images. (UI / Menu)
- awesome-ios-star - AZDropdownMenu - An easy to use dropdown menu that supports images. (UI / Menu)
README
# AZDropdownMenu
[![Build Status](https://www.bitrise.io/app/1dcd88cfb9a0f14e.svg?token=-Rs7yi0wHvWCFAZzx977JA)](https://www.bitrise.io/app/1dcd88cfb9a0f14e)
[![Version](https://img.shields.io/cocoapods/v/AZDropdownMenu.svg?style=flat)](http://cocoapods.org/pods/AZDropdownMenu)
[![License](https://img.shields.io/cocoapods/l/AZDropdownMenu.svg?style=flat)](http://cocoapods.org/pods/AZDropdownMenu)
[![Platform](https://img.shields.io/cocoapods/p/AZDropdownMenu.svg?style=flat)](http://cocoapods.org/pods/AZDropdownMenu)
[![Language](https://img.shields.io/badge/swift-4-orange.svg)](http://swift.org)AZDropdownMenu is a simple dropdown menu component that supports Swift.
## Screenshots
Code used in the screencast are included in the bundled sample project.![screencast](https://cloud.githubusercontent.com/assets/879197/13528338/455c738a-e250-11e5-8671-312aa58a63e1.gif)
## Demo Project
To run the demo project, clone the repo with `git clone https://github.com/Azuritul/AZDropdownMenu.git`, and run `pod install` from the Example directory first.
## Requirements
- iOS 8 or above
- Xcode 8 or above
- Swift 3## Installation
AZDropdownMenu is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:```ruby
use_frameworks!
pod 'AZDropdownMenu'
```Use version 1.1.2 if you don't need Swift 4 support.
## Usage
Declare an array of texts that are served as the item in the menu.
```swift
let titles = ["Action 1", "Action 2", "Action 3"]
```
Then pass the array to the initializer
```swift
let menu = AZDropdownMenu(titles: titles)
```Set up so that the `UIBarButtonItem` is asso
ated with a function that shows the menu
```
let button = UIBarButtonItem(image: UIImage(named: "menu_image"), style: .Plain, target: self, action: "showDropdown")
navigationItem.leftBarButtonItem = menuButton
```Calling `public func showMenuFromView(view:UIView)` can then show the menu.
```swift
func showDropdown() {
if (self.menu?.isDescendantOfView(self.view) == true) {
self.menu?.hideMenu()
} else {
self.menu?.showMenuFromView(self.view)
}
}
```The handler `public var cellTapHandler : ((indexPath:NSIndexPath) -> Void)?` would be called
when menu item is tapped. So place code in here to do whatever you want. For example```swift
menu.cellTapHandler = { [weak self] (indexPath: NSIndexPath) -> Void in
self?.navigationController?.pushViewController(controller, animated:true)
}
```#### Create menu with icons
Pass in a AZDropdownMenuItemData in the initializer: `public init(dataSource:[AZDropdownMenuItemData])` and you are good to go.> Take a look at the sample project in this repository to get more usage of the library.
### Configurable options
Currently AZDropdownMenu can be customized with the following properties. More will come in the future.- `itemHeight` Row height of the menu item. Default is 44.
- `itemColor` The background color of the menu item. Default is white.
- `itemFontColor` The text color of the menu item. Default is black.
- `itemFontSize` Font size of the menu item. Default is 14.0
- `itemFont` Font used in the menu. Default is 'Helvetica'
- `itemAlignment` The alignment of the menu item. Default is left-aligned.
- `itemSelectionColor` The background color of the menu item while it is tapped. Default is gray.
- `overlayAlpha` The transparency for the background overlay. Default is 0.5
- `overlayColor` Color for the background overlay. Default is black.
- `menuSeparatorStyle` The separator of the menu. Default is single line.
- `menuSeparatorColor` The color of the separator. Default is light gray.
- `itemImagePosition` The position of image in the menu. Can be positioned before or after the text. Default is `.Prefix`.
- `shouldDismissMenuOnDrag` If set to true, menu would be dismissed on drag. Default value is `false`.## Version
- 1.1.3
- Update for Swift 4 syntax
- 1.1.2
- Update for Swift 3 syntax- 1.1.1
- Update for Swift 2.2's #selector syntax- 1.1.0
- Added `shouldDismissMenuOnDrag` option, menu would be dismissed on drag if this option is enabled
- Modified the sample project with an example using `UITableView`.
- Added gesture handler for the menu.
- Extract config struct to a separate file
- Update readme.
- 1.0.0
- Added `itemImagePosition` option, now can configure the icon position.
- Changed icon sets and its corresponding location in the sample project.
- Modified sample project's appearance a little bit.
- Modified sample project's structure.
- Added CHANGELOG.md
- 0.6.1
- Update readme
- 0.6.0
- Now can use icons in the menu.
- Added configuration options: `menuSeparatorColor`, `itemFont`
- 0.5.3
- Now can configure item's background color while tapped## Credit
- Icon used in in the sample project is [Designed by Skydesign - Freepik.com](http://www.freepik.com/free-photos-vectors/people)## Author
Chris Wu (Azuritul), [email protected]## License
AZDropdownMenu is available under the MIT license. See the LICENSE file for more info.