抽屉效果 MMDrawerController 使用说明
这是一个抽屉导航控制器, 越来越多的应用开始使用抽屉效果, 这个库是 轻量级的 抽屉导航控制器
- 创建 MMDrawerController
MMDrawerController 是一个 容器 控制器(和 UINavigationController 或者 UITabBarController 相似) 拥有三个自控制器, 中部, 左边抽屉, 右边抽屉 ,创建 MMDrawerController 前 必须 先创建 上面提到的三个自控制器(左中右), 然后调用 下面给出的初始化方法 来初始化
-(instancetype)initWithCenterViewController:(UIViewController *)centerViewController leftDrawerViewController:(UIViewController *)leftDrawerViewController rightDrawerViewController:(UIViewController *)rightDrawerViewController;
UINavigationController 可以作为 中部 的子控制器
MMDrawerController 自动支持 UINavigationController 作为 中部 自控制器, 可以正确管理view上的手势(无论是navigation bar view 还是 viewController 的view).
这个库 也支持包含 其他控制器容器, 这时 手势开关 不接受定制
- 从子控制器 获取 MMDrawerController
子控制器 可以通过 分类(UIViewController+MMDrawerController) 来 获取关于 容器 MMDrawerController 的信息
即使 子控制器 包含在 UINavigationController 中, 在这个库中 自控制器的 容器 默认是 MMDrawerController .
更多 关于 这个分类的信息, 去该分类中查看
- MMDrawerOpenCenterInteractionMode
控制了 当抽屉打开时 用户和中部控制器交互的模式. 默认是 MMDrawerOpenCenterInteractionModeNavigationBarOnly 只允许 中部控制器的导航栏可以交互,
MMDrawerOpenCenterInteractionModeNone: 禁止用户和中部控制器有任何交互
MMDrawerOpenCenterInteractionModeFull: 用户可以和中部控制器任何地方交互
注意: 无论设置什么模式, 都不会影响 单击中部控制器 的 手势 去关闭抽屉(MMCloseDrawerGestureMode)
如上图:
选择OPEN CENTER INTERACTION MODE
- None 无法滑动 中间控制器 不能点击导航栏 菜单按钮
- Full 可滑动 中间控制器 可以点击 导航栏 菜单按钮
- Nav Bar Only 不能滑动 中间控制器 可以点击 导航栏 菜单按钮
打开和关闭 抽屉的手势
每个抽屉实例都被添加了 两个手势, 拖动手势 和 单击手势,
MMDrawerController 识别这些手势,
根据打开和关闭手势的识别 和 抽屉控制器的当前状态, 来决定 这个手势 是否 传递下去启用 重用标志
为了 恢复 MMDrawerController ,你必须给 中部控制器,左边抽屉,右边抽屉 和 MMDrawerController 设置重用标志restorationIdentifier, 这样, 你的应用在 进入后台 或者下次启动时 会 存储 抽屉的打开状态.
- 这个库 不支持 下面的操作
- 1.不支持 顶部 或者 底部 抽屉
- 2.不支持 同时 打开 左右 抽屉
- 3.不支持 显示最小抽屉宽度(没看懂)
- 4.不支持 将容器控制器设置为 中部控制器 (UINavigationController 除外)
直接下载上面的项目, 对立面的代码进行了详细的注释和说明,赶时间的同学可以看看我的注释 基本上你们瞄一眼就可以直接开始使用了.
2017-05-03 补充
抽时间 把 MMDrawerController
在 Github
上的使用文档 翻译了下,
2017-05-04补充
2017-05-08 补充
用MMDrawerController
写了个swift的抽屉效果
- 用swift完成一个抽屉效果的过程,还从来没有用swift写过东西呢
-
demo下载地址
大家顺手给个star 呗
再次补充