标签:
不多说,直接上图看效果,RESideMenu就是这种点击一下左上角或者右上角就显示出菜单,而原来的界面进行缩放的效果。开源库的下载链接为https://github.com/romaonthego/RESideMenu
1.先下载开源库将库导入至工程。
2.创建主界面和目录界面,这里我创建了两个ViewController,一个是用以显示主界面PostDisplayViewController,另一个用以显示侧边目录,叫MenuViewController。
3.在AppDelegate.h中声明RESideMenu委托
@interface AppDelegate : UIResponder <UIApplicationDelegate,RESideMenuDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
4.在AppDelegate.m中进行如下设置,这里的主要工作有以下几点
告诉RESideMenu内容界面是哪个,左目录界面以及右目录界面(示例代码未加入右目录,读者可自行添加);
界面背景以及设置显示左右目录时,内容界面缩放后的阴影效果;
设置移动手势以及在显示和关闭目录时的需要做的动作。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//帖子界面,用导航视图控制器来显示,方便管理跳转
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:[[PostDisplayViewController alloc] init]];
//菜单界面
MenuViewController *menuViewController = [[MenuViewController alloc] init];
//加入至sizeMenu中
RESideMenu *sideMenuViewController = [[RESideMenu alloc] initWithContentViewController:navigationController leftMenuViewController:menuViewController rightMenuViewController:nil];
/** 属性设置 */
//背景图像,左右目录都会使用这个图像
sideMenuViewController.backgroundImage = [UIImage imageNamed:@"Stars"];
//设置StatusBarStyle类型
sideMenuViewController.menuPreferredStatusBarStyle = UIStatusBarStyleLightContent;
//设置委托
sideMenuViewController.delegate = self;
//设置阴影颜色
sideMenuViewController.contentViewShadowColor = [UIColor blueColor];
//设置阴影偏移
sideMenuViewController.contentViewShadowOffset = CGSizeMake(0, 0);
//设置阴影透明度
sideMenuViewController.contentViewShadowOpacity = 0.6;
//设置阴影半径
sideMenuViewController.contentViewShadowRadius = 12;
//开启阴影效果
sideMenuViewController.contentViewShadowEnabled = YES;
//将sideMenuViewCOntroller设置为根视图
self.window.rootViewController = sideMenuViewController;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
有需求可以实现以下委托
//检测拖动手势
- (void)sideMenu:(RESideMenu *)sideMenu didRecognizePanGesture:(UIPanGestureRecognizer *)recognizer;
//目录显示前
- (void)sideMenu:(RESideMenu *)sideMenu willShowMenuViewController:(UIViewController *)menuViewController;
//目录显示后
- (void)sideMenu:(RESideMenu *)sideMenu didShowMenuViewController:(UIViewController *)menuViewController;
//目录隐藏前
- (void)sideMenu:(RESideMenu *)sideMenu willHideMenuViewController:(UIViewController *)menuViewController;
//目录隐藏后
- (void)sideMenu:(RESideMenu *)sideMenu didHideMenuViewController:(UIViewController *)menuViewController;
在主视图加入左右按键用以显示左右目录,以下代码只演示了如何显示左目录,右目录的显示只需要将selector换成presentRightMenuViewController: 即可。
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//设置主视图信息
self.title = @"内容界面";
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"左目录" style:UIBarButtonItemStylePlain target:self action:@selector(presentLeftMenuViewController:)];
}
标签:
原文地址:http://www.cnblogs.com/limaofuyuanzhang/p/4693452.html