Skip to content

ExpandingMenu is menu button for iOS written in Swift.

License

Notifications You must be signed in to change notification settings

edis219/ExpandingMenu

 
 

Repository files navigation

ExpandingMenu

CI Status Version License Platform

demo

ExpandingMenu is written in Swift.

Requirements

  • iOS 8.0+
  • Xcode 10.0+
  • Swift 3.x+

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.4'
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.4

Run carthage update to build the framework and drag the built ExpandingMenu.framework into your Xcode project.

Manually

  1. Download and drop /ExpandingMenufolder in your project.
  2. Congratulations!

Usage

import ExpandingMenu

let 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

// 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 animation

menuButton.expandingAnimations = CustomAnimationOptions.all.symmetricDifference(.menuButtonRotate)

// Folding Animation
menuButton.foldingAnimations = .all

menuButton.foldingAnimations = [.MenuItemMoving, .MenuItemFade, .MenuButtonRotation]

ExpandingMenuItem

// Title
item.title = "text"
item.titleColor = UIColor.redColor()

// Title margin to menu item
item.titleMargin = 4

Author

monoqlo, monoqlo44@gmail.com

License

ExpandingMenu is available under the MIT license. See the LICENSE file for more info.

About

ExpandingMenu is menu button for iOS written in Swift.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 95.9%
  • Ruby 4.1%