MFSideMenu 0.5.5

MFSideMenu 0.5.5

测试测试
语言语言 Obj-CObjective C
许可证 BSD
发布最后发布2014年12月

Michael Frederick 维护。



  • Michael Frederick

该项目受到了在 Facebook iOS 应用中看到的侧边菜单功能启发。MFSideMenu 利用视图控制器容器,并提供了简单的 API 来实现侧边菜单功能。它支持基于故事板的应用以及传统设置。

 

特性

  • 通用设备支持(iPhone + iPad)
  • 通用方向支持(纵向 + 横向)
  • 屏幕左右两侧的菜单。
  • 故事板支持
  • 视图控制器容器
  • 与 UINavigationController、UITabBarController 以及其他类型的视图控制器一起工作
  • 一组良好的配置选项
  • 轻量级、简单且易读的代码。

安装

手动安装

MFSideMenu 文件夹添加到您的项目中。将 QuartzCore 添加到您的项目中。MFSideMenu 使用 ARC。如果您有一个不使用 ARC 的项目,只需将编译器标志 -fobjc-arc 添加到 MFSideMenu 文件中。

使用

基本设置

在您的应用程序代理中

#import "MFSideMenu.h"

MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
                                                containerWithCenterViewController:centerViewController
                                                leftMenuViewController:leftMenuViewController
                                                rightMenuViewController:rightMenuViewController];
self.window.rootViewController = container;
[self.window makeKeyAndVisible];

打开 & 关闭菜单

// 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:^{}];

手势模式

您可以选择在哪些区域允许进行平移手势。

// 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;

平移自定义视图

您可以将平移添加到任何视图,例如:

[panView addGestureRecognizer:[self.menuContainerViewController panGestureRecognizer]];

监听菜单事件

您可以监听菜单状态事件的变化(例如,菜单即将打开、菜单已打开等)。请参阅 MFSideMenuContainerViewController.h,了解不同类型的事件。

[[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;
    // ...
}

菜单滑动动画

启用此选项后,侧边菜单将与中心视图控制器一起滑动进入和退出。此效果类似于Wunderlist侧边菜单。

// enable the menu slide animation
[menuContainerViewController setMenuSlideAnimationEnabled:YES];

// control the exaggeration of the menu slide animation
[menuContainerViewController setMenuSlideAnimationFactor:3.0f];

阴影

MFSideMenu给您提供了在中心视图控制器和侧边菜单之间显示阴影的选项。

// 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];

联系方式

@mike_frederick