Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/monoqlo/ExpandingMenu
ExpandingMenu is menu button for iOS written in Swift.
https://github.com/monoqlo/ExpandingMenu
Last synced: 6 days ago
JSON representation
ExpandingMenu is menu button for iOS written in Swift.
- Host: GitHub
- URL: https://github.com/monoqlo/ExpandingMenu
- Owner: monoqlo
- License: mit
- Created: 2015-09-20T07:12:02.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2019-05-04T08:47:47.000Z (over 5 years ago)
- Last Synced: 2024-04-24T02:14:17.169Z (8 months ago)
- Language: Swift
- Homepage:
- Size: 888 KB
- Stars: 455
- Watchers: 21
- Forks: 88
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - ExpandingMenu - ExpandingMenu is menu button for iOS written in Swift. (UI / Menu)
- awesome-ios-star - ExpandingMenu - ExpandingMenu is menu button for iOS written in Swift. (UI / Menu)
README
# ExpandingMenu
[![CI Status](http://img.shields.io/travis/monoqlo/ExpandingMenu.svg?style=flat)](https://travis-ci.org/monoqlo/ExpandingMenu)
[![Version](https://img.shields.io/cocoapods/v/ExpandingMenu.svg?style=flat)](http://cocoapods.org/pods/ExpandingMenu)
[![License](https://img.shields.io/cocoapods/l/ExpandingMenu.svg?style=flat)](http://cocoapods.org/pods/ExpandingMenu)
[![Platform](https://img.shields.io/cocoapods/p/ExpandingMenu.svg?style=flat)](http://cocoapods.org/pods/ExpandingMenu)![demo](https://github.com/monoqlo/ExpandingMenu/blob/master/imgs/demo.gif)
ExpandingMenu is written in Swift.
## Requirements
- iOS 8.0+
- Xcode 10.0+
- Swift 3.x+## Installation
### CocoaPods
You can install [CocoaPods](http://cocoapods.org) with the following command:
```bash
$ gem install cocoapods
```To integrate ExpandingMenu into your Xcode project using CocoaPods, specify it in your `Podfile`:
```ruby
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!target '' do
pod 'ExpandingMenu', '~> 0.4'
end
```Then, run the following command:
```bash
$ pod install
```### Carthage
You can install [Carthage](https://github.com/Carthage/Carthage) with [Homebrew](http://brew.sh/) using the following command:
```bash
$ brew update
$ brew install carthage
```To integrate ExpandingMenu into your Xcode project using Carthage, specify it in your `Cartfile`:
```ogdl
github "monoqlo/ExpandingMenu" ~> 0.4
```Run `carthage update` to build the framework and drag the built `ExpandingMenu.framework` into your Xcode project.
### Manually
1. Download and drop ```/ExpandingMenu```folder in your project.
2. Congratulations!## Usage
```swift
import ExpandingMenulet menuButtonSize: CGSize = CGSize(width: 64.0, height: 64.0)
let menuButton = ExpandingMenuButton(frame: CGRect(origin: CGPoint.zero, size: menuButtonSize), image: UIImage(named: "chooser-button-tab")!, rotatedImage: UIImage(named: "chooser-button-tab-highlighted")!)
menuButton.center = CGPoint(x: self.view.bounds.width - 32.0, y: self.view.bounds.height - 72.0)
view.addSubview(menuButton)let item1 = ExpandingMenuItem(size: menuButtonSize, title: "Music", image: UIImage(named: "chooser-moment-icon-music")!, highlightedImage: UIImage(named: "chooser-moment-icon-music-highlighted")!, backgroundImage: UIImage(named: "chooser-moment-button"), backgroundHighlightedImage: UIImage(named: "chooser-moment-button-highlighted")) { () -> Void in
// Do some action
}・・・
let item5 = ExpandingMenuItem(size: menuButtonSize, title: "Sleep", image: UIImage(named: "chooser-moment-icon-sleep")!, highlightedImage: UIImage(named: "chooser-moment-icon-sleep-highlighted")!, backgroundImage: UIImage(named: "chooser-moment-button"), backgroundHighlightedImage: UIImage(named: "chooser-moment-button-highlighted")) { () -> Void in
// Do some action
}
menuButton.addMenuItems([item1, item2, item3, item4, item5])
```## Customize
### ExpandingMenuButton
```swift
// Bottom dim view
menuButton.bottomViewColor = UIColor.redColor()
menuButton.bottomViewAlpha = 0.2// Whether the tapped action fires when title are tapped
menuButton.titleTappedActionEnabled = false// Menu item direction
menuButton.expandingDirection = .Bottom
menuButton.menuTitleDirection = .Right// The action when the menu appears/disappears
menuButton.willPresentMenuItems = { (menu) -> Void in
print("MenuItems will present.")
}menuButton.didPresentMenuItems = { (menu) -> Void in
print("MenuItems will present.")
}
menuButton.willDismissMenuItems = { (menu) -> Void in
print("MenuItems dismissed.")
}menuButton.didDismissMenuItems = { (menu) -> Void in
print("MenuItems will present.")
}// Expanding Animation
menuButton.expandingAnimations = [] // No animationmenuButton.expandingAnimations = CustomAnimationOptions.all.symmetricDifference(.menuButtonRotate)
// Folding Animation
menuButton.foldingAnimations = .allmenuButton.foldingAnimations = [.MenuItemMoving, .MenuItemFade, .MenuButtonRotation]
```### ExpandingMenuItem
```swift
// Title
item.title = "text"
item.titleColor = UIColor.redColor()// Title margin to menu item
item.titleMargin = 4
```## Author
monoqlo, [email protected]
## License
ExpandingMenu is available under the MIT license. See the LICENSE file for more info.