Grid and Circular Menu for iOS.

Overview

IGCMenu

IGCMenu library gives easy way to create Grid and Circular menu in app.

This is light weight and highly customisable menu.Support iOS 7 and above.

For swift check swift branch

Grid Menu Circular Menu
Grid Menu Circular Menu
Blured Background
Circular Menu

Features

  • Grid Menu
  • Circular Menu
  • Blur background
  • Enable/Diable menu background
  • Menu items can be without images/names

Installation

Installation with CocoaPods

You can use CocoaPods to install IGCMenu by adding it to your Podfile:

platform :ios, '8.0'

target 'TargetName' do
pod 'IGCMenu'
end

Then, run the following command:

$ pod install

Manually

Drag the folder "IGCMenu" with the source files into your project.

How to use

Import

#import "IGCMenu.h"

Conform Protocol

Optional if you don't want to get notify for menu items selection then skip this step.

Conform to IGCMenuDelegate

@interface ViewController : UIViewController<IGCMenuDelegate>

Create Instance Variable

Create instance variable of type IGCMenu.

@implementation ViewController{
    IGCMenu *igcMenu;
}

Create instance of class IGCMenu and configure attributes

if (igcMenu == nil) {
      igcMenu = [[IGCMenu alloc] init];
  }
  igcMenu.menuButton = self.menuButton;   //Pass refernce of menu button
  igcMenu.menuSuperView = self.view;      //Pass reference of menu button super view
  igcMenu.disableBackground = YES;        //Enable/disable menu background
  igcMenu.numberOfMenuItem = 5;           //Number of menu items to display
  
  //Menu background. It can be BlurEffectExtraLight,BlurEffectLight,BlurEffectDark,Dark or None
  igcMenu.backgroundType = BlurEffectDark;

/* Optional
Pass name of menu items
**/
  igcMenu.menuItemsNameArray = [NSArray arrayWithObjects:@"Home",@"Like",@"Search",@"User",@"Buy",nil];
  
/*Optional
Pass color of menu items
**/
UIColor *homeBackgroundColor = [UIColor colorWithRed:(33/255.0) green:(180/255.0) blue:(227/255.0) alpha:1.0];
UIColor *searchBackgroundColor = [UIColor colorWithRed:(139/255.0) green:(116/255.0) blue:(240/255.0) alpha:1.0];
UIColor *favoritesBackgroundColor = [UIColor colorWithRed:(241/255.0) green:(118/255.0) blue:(121/255.0) alpha:1.0];
UIColor *userBackgroundColor = [UIColor colorWithRed:(184/255.0) green:(204/255.0) blue:(207/255.0) alpha:1.0];
UIColor *buyBackgroundColor = [UIColor colorWithRed:(169/255.0) green:(59/255.0) blue:(188/255.0) alpha:1.0];
igcMenu.menuBackgroundColorsArray = [NSArray arrayWithObjects:homeBackgroundColor,favoritesBackgroundColor,searchBackgroundColor,userBackgroundColor, buyBackgroundColor,nil];

/*Optional
Pass menu items icons
**/
igcMenu.menuImagesNameArray = [NSArray arrayWithObjects:@"home.png",@"favourite.png",@"search.png",@"user.png",@"buy.png",nil];

/*Optional if you don't want to get notify for menu items selection
conform delegate
**/
igcMenu.delegate = self;

Array of name,color and icons will appear in the same order.

Show/Hide menu

On menu button press you can show/hide menu items by calling methods below.

To show/hide circular menu

[igcMenu showCircularMenu];  //Show circular menu
[igcMenu hideCircularMenu];  //Hide circular menu

To show/hide grid menu

[igcMenu showGridMenu];     //Show grid menu
[igcMenu hideGridMenu];     //Hide grid menu

Delegate Implementation

To get notify about menu item selection you must implement this method.

- (void)igcMenuSelected:(NSString *)selectedMenuName atIndex:(NSInteger)index{
//Perform any action on selection of menu item
}

On selecting any menu item it gives selected menu item name(if present otherwise nil) and index of menu item.Index of menu item start from 0.

Customisations

@property (nonatomic) NSInteger numberOfMenuItem;   //Number of menu items to show
@property (nonatomic) CGFloat menuRadius;           //Radius for circular menu
@property (weak,nonatomic) UIButton *menuButton;    //Menu button reference
@property (weak,nonatomic) UIView *menuSuperView;   //Menu button super view reference
@property (strong,nonatomic) NSArray *menuItemsNameArray;        //Menu items name array,it can be empty
@property (strong,nonatomic) NSArray *menuBackgroundColorsArray; //Menu items background color,it can be empty, default color is white
@property (strong,nonatomic) NSArray *menuImagesNameArray;       //Menu item icons array it can be empty
@property (nonatomic) BOOL disableBackground;       //Disable background view, default is TRUE
@property int maxColumn;                            //Maximium number of column,default is 3
@property int menuHeight;                           //height = width ,default is 65
@property UIColor *menuTitleColor;                  // Menu title color, default is white
@property UIFont *menuTitleFont;                    // Menu title font, default is system regular 12
/*
Set menu background.It can be BlurEffectExtraLight,BlurEffectLight,BlurEffectDark,Dark or None.
Default is BlurEffectDark.
*/
@property IGCMenuBackgroundOptions backgroundType;

Note

This library does not customise menu button(in example at bottom in dark blue background color) like making round,setting background color,changing icon like + and x. This is left on you to customise.You can take refernce form example if any help needed. Code to make button circle is:

self.menuButton.clipsToBounds = YES;
self.menuButton.layer.cornerRadius = self.menuButton.frame.size.height/2;

Let us know!

We will be happy if you sent us links to your projects where you use our library. And do let us know if you have any questions or suggestion regarding anything.

License

IGCMenu is available under the MIT license.

Comments
  • Click on buttons not work on ios11

    Click on buttons not work on ios11

    Hi, nice framework! The animation works fine but click on other 5 buttons not work. The func igcMenuSelected is not called. I´ve copy your code 1to1 but the func is not called.

    Any ideas?

    Thanks for support!

    opened by DK-Web 4
  • About Background Color Changes

    About Background Color Changes

    Hello sir, I love using this library :) Thank you so much !

    I need to change the color when user tapped one of the menu items. I can do that with a silly solution. Can you suggest me a good solution for changing background colors when user select one of the menu items ?

    Thank you :)

    opened by WrathChaos 4
  • Memory Leak?

    Memory Leak?

    So I got everything to work (from last time), but I've noticed whenever I use your framework, my device heats up. Like it really heats the fuck up - it gets really fucking hot. I'm thinking there's a memory leak? I'll try to look into it to see what's going on.

    opened by HackShitUp 3
  • - Added device orientation observer

    - Added device orientation observer

    • Added orientation changed method to handle menu layout
    • Added isCircularMenu or isGridMenu properties
    • Separated in different methods the layout set up for circular and grid menu #6
    opened by FraDeliro 2
  • StackView Issue

    StackView Issue

    Hello, I love using this library, thank you so much ! :)

    It is working really good but when i put my button inside a StackView, its menuSuperView not working correctly. It could be my fault but i couldn't solve it :)

    I hope you can find a way for me :)

    Thank you!

    opened by WrathChaos 1
  • Can I use this on Tabbar item?

    Can I use this on Tabbar item?

    Hello Sir,

    Hope you are doing well!

    Thanks a lot for provide wonderful library. I try to implement this library on tabbar item but am unable to do. Can I use this library on tabbar middle item for show and hide. Second Can I change titles of of menus.

    Thanks & Best Regards, Bikramjeet Singh

    opened by ablyBikramjeet 5
  • Thank You!

    Thank You!

    This isn't an issue, but I'd just like to thank you for your work as I've used it in my iOS app I recently released! Thank you so much for what you've made.

    https://itunes.apple.com/us/app/redplanet/id1120915322?ls=1&mt=8

    Josh

    opened by HackShitUp 0
Releases(1.2.0)
Menu with a circular layout based on Macaw

FanMenu Easily customizable floating circle menu created with Macaw We are a development agency building phenomenal apps. Usage Create UIView in your

Exyte 711 Jul 31, 2022
A radial/circular menu featuring spring animations.

ALRadialMenu A radial/circular menu featuring spring animations. Written in swift. Experimenting with fluent interfaces (https://github.com/vandadnp/s

Alex Littlejohn 50 Jul 1, 2022
SwiftySideMenu is a lightweight and easy to use side menu controller to add left menu and center view controllers with scale animation based on Pop framework.

SwiftySideMenu SwiftySideMenu is a lightweight, fully customizable, and easy to use controller to add left menu and center view controllers with scale

Hossam Ghareeb 84 Feb 4, 2022
A Slide Menu, written in Swift, inspired by Slide Menu Material Design

Swift-Slide-Menu (Material Design Inspired) A Slide Menu, written in Swift 2, inspired by Navigation Drawer on Material Design (inspired by Google Mat

Boisney Philippe 90 Oct 17, 2020
Slide-Menu - A Simple Slide Menu With Swift

Slide Menu!! Весь интерфейс создан через код

Kirill 0 Jan 8, 2022
EasyMenu - SwiftUI Menu but not only button (similar to the native Menu)

EasyMenu SwiftUI Menu but not only button (similar to the native Menu) You can c

null 8 Aug 22, 2022
Swift-sidebar-menu-example - Create amazing sidebar menu with animation using swift

 SWIFT SIDEBAR MENU EXAMPLE In this project I create a awesome side bar menu fo

Paolo Prodossimo Lopes 4 Jul 25, 2022
Hamburger Menu Button - A hamburger menu button with full customization

Hamburger Menu Button A hamburger menu button with full customization. Inspired by VinhLe's idea on the Dribble How to use it You can config the looks

Toan Nguyen 114 Jun 12, 2022
Swipable tab and menu View and ViewController.

SwipeMenuViewController Overview SwipeMenuViewController provides SwipeMenuView and SwipeMenuViewController. This is very useful to build swipe-based

Yusuke Morishita 1.2k Sep 22, 2022
An iOS drop down menu with pretty animation and easy to customize.

IGLDropDownMenu An iOS drop down menu with pretty animation. Screenshot How To Use Use CocoaPods: pod 'IGLDropDownMenu' Manual Install: Just drap the

Galvin Li 1.2k Aug 31, 2022
Hamburger Menu using Swift and iOS 8 API's

FrostedSidebar Hamburger Menu using Swift and iOS 8 API's Heavily influenced by @_ryannystrom's RNFrostedSidebar This implementation uses iOS 8's new

Evan Dekhayser 430 Jun 29, 2022
Simple and Elegant Drop down menu for iOS 🔥💥

SwiftyMenu is simple yet powerfull drop down menu component for iOS. It allow you to have drop down menu that doesn't appear over your views, which gi

Karim Ebrahem 496 Sep 17, 2022
iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift.

SlideMenuControllerSwift iOS Slide View based on iQON, Feedly, Google+, Ameba iPhone app. Installation CocoaPods pod 'SlideMenuControllerSwift' Carth

Yuji Hato 3.3k Sep 11, 2022
PagingKit provides customizable menu UI. It has more flexible layout and design than the other libraries.

PagingKit provides customizable menu & content UI. It has more flexible layout and design than the other libraries. What's this? There are many librar

Kazuhiro Hayashi 1.3k Sep 14, 2022
UIKit drop down menu, simple yet flexible and written in Swift

DropDownMenuKit DropDownMenuKit is a custom UIKit control to show a menu attached to the navigation bar or toolbar. The menu appears with a sliding an

Quentin Mathé 250 Sep 15, 2022
Menu controller with expandable item groups, custom position and appearance animation written with Swift. Similar to ActionSheet style of UIAlertController.

Easy to implement controller with expanding menu items. Design is very similar to iOS native ActionSheet presentation style of a UIAlertController. As

Anatoliy Voropay 21 Apr 18, 2022
Describing a bug with Sheet and Menu

MenuTest Describing a bug with Sheet and Menu This repository is related to a question in Apples developers forum, with id: 692338 Dismiss via Button

Tim 0 Oct 14, 2021
Barber lives in your macOS menu bar and keeps track of what needs to be updated.

Barber Barber is a macOS application to keep track of application updates easily. It lives in your menu bar, and uses homebrew to determine what's out

Max Ainatchi 1 Nov 30, 2021
Control your display's brightness from the macOS menu bar. Simple and easy to use.

MonitorControl Lite Control your display's brightness from the macOS menu bar. Simple and easy to use. About MonitorControl Lite is a simplified versi

null 49 Aug 28, 2022