在做应用时,经常会用到侧边栏,如果自己定义的话效果可能不理想。这个时候可以用DDMenuController,可以很方便的定义这些内容。
步骤如下:
1.必须先定义左侧栏,右侧栏的内容,分别为LeftViewController,RightViewController.
2.在AppDelegate中添加方法:
ViewController *viewController = [[ViewController alloc]init];
UINavigationController *nav = [[UINavigationControlleralloc]initWithRootViewController:viewController];
DDMenuController *menuController = [[DDMenuControlleralloc]initWithRootViewController:nav];
[menuController setEnableGesture:NO];
self.window.rootViewController =
menuController;
self.window.backgroundColor =
[UIColor whiteColor];
LeftViewController *leftController = [[LeftViewController alloc]init];
menuController.leftViewController = leftController;
RightViewController *rightController = [[RightViewController alloc]init];
menuController.rightViewController = rightController;
[self.window makeKeyAndVisible];
这样可以左滑到左侧栏,然后点击屏幕返回;右滑到右侧栏,点击屏幕返回了。
3.如果要实现按钮滑动到左侧栏,添加如下方法:
- (void)showLeft:(UIButton *)sender
{
DDMenuController *ddmenu = (DDMenuController *)((AppDelegate *)[[UIApplication sharedApplication]delegate].window.rootViewController);
[ddmenu showLeftController:YES];
}
4.如果要实现3个页面自由滑动请自定义。
我觉得DDMenuController还有以下不好用的地方:
1.当滑动到左侧栏后就不能再滑动回到主页面了,只能点击右侧屏幕返回,用户体验稍差;
2.没有实现有远近视角的半翻页效果(看起来侧边栏侧对着用户一样),效果不够出彩;
如果你是UI大牛或小牛的话,还是建议自己定义效果吧;也可能是我对这个类的研究不够深入,欢迎指正。
目前我使用的是同事写的一个好用的类,可能会在以后的博客中给出。