exyte / fan-menu

Menu with a circular layout based on Macaw
MIT License
728 stars 58 forks source link
animation ios menu swift ui

     

FanMenu

Easily customizable floating circle menu created with Macaw

Version Carthage Compatible License Platform Twitter

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)
    )
  4. 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)
    )
    ]
  5. 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)")
    }
  6. 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


7. Useful methods
```swift
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:

We have the following examples:

Installation

CocoaPods

pod 'FanMenu'

Carthage

github 'Exyte/fan-menu'

Manually

Drop FanMenu.swift into your project.

Requirements