Menu button for iOS written in Swift
ExpandingMenu
ExpandingMenu is menu button for iOS written in Swift.
Requirements
- iOS 8.0+
- Xcode 8.0+
Installation
CocoaPods
You can install CocoaPods with the following command:
$ gem install cocoapods
To integrate ExpandingMenu into your Xcode project using CocoaPods, specify it in your Podfile
:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target '<Your Target Name>' do
pod 'ExpandingMenu', '~> 0.3'
end
Then, run the following command:
$ pod install
Carthage
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate ExpandingMenu into your Xcode project using Carthage, specify it in your Cartfile
:
github "monoqlo/ExpandingMenu" ~> 0.3
Run carthage update
to build the framework and drag the built ExpandingMenu.framework
into your Xcode project.
Manually
- Download and drop
/ExpandingMenu
folder in your project. - Congratulations!
Usage
import ExpandingMenu
let menuButtonSize: CGSize = CGSize(width: 64.0, height: 64.0)
let menuButton = ExpandingMenuButton(frame: CGRect(origin: CGPoint.zero, size: menuButtonSize), centerImage: UIImage(named: "chooser-button-tab")!, centerHighlightedImage: 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
// 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.enabledExpandingAnimations = [] // No animation
menuButton.enabledExpandingAnimations = CustomAnimationOptions.All.exclusiveOr(.MenuItemRotation)
// Folding Animation
menuButton.enabledFoldingAnimations = .All
menuButton.enabledFoldingAnimations = [.MenuItemMoving, .MenuItemFade, .MenuButtonRotation]
ExpandingMenuItem
// Title
item.title = "text"
item.titleColor = UIColor.redColor()
// Title margin to menu item
item.titleMargin = 4