/ Menu

An Menu component for your awesome apps

An Menu component for your awesome apps

PGMenu

Awesome menu for your apps!

Requirements

  • Swift 4.2. Should work with Swift 3.*

Example Project

You have a fully functional demo in PGMenu folder

Install

Manually

Just drag and drop Source folder in your project

Cocoapods


use_frameworks!
pod 'PGMenu'

Using PGMenu

  • Create an array of ButtonConfiguration<CircleButtonParameters, Any> you can use this function:

func getButtonsParameters() -> [ButtonConfiguration<CircleButtonParameters, Any>] {

  var parameters = [ButtonConfiguration<CircleButtonParameters, Any>]()

  let airquality = getMenuItemConfiguration(imageName: "airquality",
                                            gradient: Gradient(colors: (initColor: UIColor(rgb: 0x11998e), endColor: UIColor(rgb: 0x38ef7d)),
                                            orientation: GradientOrientation.bottomRightTopLeft),
                                            textMenuItem: "Air quality")
  let journey = getMenuItemConfiguration(imageName: "journey",
                                          gradient: Gradient(colors: (initColor: UIColor(rgb: 0x800080), endColor: UIColor(rgb: 0xffc0cb)),
                                          orientation: GradientOrientation.bottomRightTopLeft), textMenuItem: "Journey")

  parameters = [airquality, journey]
  return parameters
}


  • Create the StackMenu object

  let menuItems = self.getButtonsParameters()
  let stackMenu = StackMenu(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height), configuration: menuItems)

  • Set the delegate

  stackMenu.delegate = self

  • Implement the delegate method

  extension ViewController: StackMenuDelegate {

      @objc func stackMenu( pressedButtonAtIndex: Int) {
          print("Pressed: \(#function) index: \(pressedButtonAtIndex)")
      }
  }

  • And finally, add the stackmenu to the main view

  self.view.addSubview(stackMenu)

And voilá....

Support/Issues

If you have any questions, please don't hesitate to create an issue.

GitHub