#MFSideMenu
This project was inspired by the side-menu functionality seen in the Facebook iOS app. MFSideMenu utilizes view controller containment and gives you a simple API for implementing side-menu functionality. It integrates with storyboard-based apps as well as traditional setups.
=======
##Features
- Universal device support (iPhone + iPad)
- Universal orientation support (Portrait + Landscape)
- Menus on the left and right side of the screen.
- Storyboard support
- View controller containment
- Works with UINavigationController, UITabBarController, and other types of view controllers
- Nice set of configuration options
- Lightweight, simple and readable code.
##Installation
####CocoaPods
Add pod 'MFSideMenu' to your Podfile.
####Manually
Add the MFSideMenu folder to your project. Add QuartzCore to your project. MFSideMenu uses ARC. If you have a project that doesn't use ARC, just add the -fobjc-arc compiler flag to the MFSideMenu files.
##Usage
###Basic Setup
In your app delegate:
#import "MFSideMenu.h" MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController containerWithCenterViewController:centerViewController leftMenuViewController:leftMenuViewController rightMenuViewController:rightMenuViewController]; self.window.rootViewController = container; [self.window makeKeyAndVisible];
###Opening & Closing Menus
// toggle the left side menu [self.menuContainerViewController toggleLeftSideMenuCompletion:^{}]; // toggle the right side menu [self.menuContainerViewController toggleRightSideMenuCompletion:^{}]; // close the side menu [self.menuContainerViewController setMenuState:MFSideMenuStateClosed completion:^{}]; // open the left side menu [self.menuContainerViewController setMenuState:MFSideMenuStateLeftMenuOpen completion:^{}]; // open the right side menu [self.menuContainerViewController setMenuState:MFSideMenuStateRightMenuOpen completion:^{}];
###Pan Modes
You can specify which areas you want to allow pan gestures on:
// enable panning on the center view controllers & the side menus (this is the default behavior): menuContainerViewController.panMode = MFSideMenuPanModeCenterViewController | MFSideMenuPanModeSideMenu; // disable panning on the side menus, only allow panning on the center view controller: menuContainerViewController.panMode = MFSideMenuPanModeCenterViewController; // disable all panning menuContainerViewController.panMode = MFSideMenuPanModeNone;
###Panning Custom Views
You can add panning to any view like so:
[panView addGestureRecognizer:[self.menuContainerViewController panGestureRecognizer]];
###Listening for Menu Events
You can listen for menu state event changes (i.e. menu will open, menu did open, etc.). See MFSideMenuContainerViewController.h for the different types of events.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(menuStateEventOccurred:) name:MFSideMenuStateNotificationEvent object:nil]; - (void)menuStateEventOccurred:(NSNotification *)notification { MFSideMenuStateEvent event = [[[notification userInfo] objectForKey:@"eventType"] intValue]; MFSideMenuContainerViewController *containerViewController = notification.object; // ... }
###Menu Slide Animation
With this option enabled, the side menus will slide in & out with the center view controller. This effect is similar to the Wunderlist side menu.
// enable the menu slide animation [menuContainerViewController setMenuSlideAnimationEnabled:YES]; // control the exaggeration of the menu slide animation [menuContainerViewController setMenuSlideAnimationFactor:3.0f];
###Shadow
MFSideMenu gives you the option to show a shadow between the center view controller & the side menus.
// enable/disable the shadow [menuContainerViewController.shadow setEnabled:YES]; // set the radius of the shadow [menuContainerViewController.shadow setRadius:10.0f]; // set the color of the shadow [menuContainerViewController.shadow setColor:[UIColor blackColor]]; // set the opacity of the shadow [menuContainerViewController.shadow setOpacity:0.75f];
##Contact

