Skip to content
forked from exyte/fan-menu

Menu with a circular layout based on Macaw

License

Notifications You must be signed in to change notification settings

basilche/fan-menu

 
 

Repository files navigation

FanMenu

Easily customizable floating circle menu created with Macaw


We are a development agency building phenomenal apps.



Twitter Version Carthage Compatible License Platform

Usage

  1. Create UIView in your storyboard or programatically.
  2. Set FanMenu as UIView class.
  3. Set the button
fanMenu.button = FanMenuButton(
  id: "main",
  image: "plus",
  color: Color(val: 0x7C93FE)
)
  1. Set menu items
fanMenu.items = [
  FanMenuButton(
    id: "exchange_id",
    image: "exchange",
    color: Color(val: 0x9F85FF)
  ),
  ...
  FanMenuButton(
    id: "visa_id",
    image: "visa",
    color: Color(val: 0xF55B58)
  )
]
  1. Add an event handler
// call before animation
fanMenu.onItemDidClick = { button in
  print("ItemDidClick: \(button.id)")
}
// call after animation
fanMenu.onItemWillClick = { button in
  print("ItemWillClick: \(button.id)")
}
  1. Configure optional parameters
// distance between button and items
fanMenu.menuRadius = 90.0

// animation duration
fanMenu.duration = 0.35

// menu opening delay
fanMenu.delay = 0.05

// interval for buttons in radians
fanMenu.interval = (0, 2.0 * M_PI)

// menu background color
fanMenu.menuBackground = Color.red
  1. Useful methods
fanMenu.isOpen
fanMenu.open()
fanMenu.close()

Customization

FanMenu is created with Macaw, our vector graphics Swift library. Thanks to that, it can be easily modified and improved for your purposes.

All source code is located in one single file called FanMenu.swift. To modify the menu simply copy this file and apply necessary changes.

Examples

To try out the FanMenu examples:

  • Clone the repo git@github.com:exyte/fan-menu.git
  • Open terminal and run cd <FanMenuRepo>/Example/
  • Run pod install to install all dependencies
  • Run open FanMenu.xcworkspace/ to open project in the Xcode
  • Try it!

We have the following examples:

Installation

CocoaPods

pod "FanMenu"

Carthage

github "Exyte/fan-menu"

Manually

Drop FanMenu.swift into your project.

Requirements

  • iOS 8.0+ / Mac OS X 10.9+
  • Xcode 8.0+

About

Menu with a circular layout based on Macaw

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 96.0%
  • Ruby 2.4%
  • Objective-C 1.6%