项目中需要用到一个抽屉效果,于是上网搜了一下,因为这个效果是个比较经典的动画转场效果,所以实现都是一些比较老的实现。比较常见的写法有两种。
一种是在主控制旁加一个UIView,然后将这个UIView视为侧滑栏,这种实现方式固然可以,但是UIView有它的局限性,而且当抽屉上拥有更多逻辑的时候,会造成这个slideView比较臃肿。
还有一种是两个控制器控制,但是转场使用的比较老的转场模式,直接使用UIView的animate方法来控制。
基于以上两种实现比较古老,所以我想使用两个控制器来完成,一个是主控制器,一个是侧滑栏控制器,两者互不相干,各自完成各自的逻辑,将转场的逻辑,手势滑动的逻辑统统封装起来。以这个为基础需求,设计了NENSlideMenu.
1.gifNENSlideMenu 是一个管理者,用于管理主控制器以及侧滑栏控制器,封装了滑动转场,滑动手势。
- 使用
CocoaPods
pod 'NENSlideMenu'
// 1.在主控制器中创建
NENSlideManager *slideManager = [[NENSlideManager alloc] initWithMenuController:destinationVC mainController:self];
// 2.确保它不是临时变量,因为转场的逻辑都统一由它来管理
self.slideManager = slideManager;
// 3.设置侧滑栏的初始位置,如果不设置,默认是从左侧滑出
slideManager.targetEdge = UIRectEdgeLeft;
// 4.设置侧滑栏的宽度,如果不设置,默认是屏幕宽度
slideManager.MenuWidth = 270;
现在当我们执行presentViewController 即可modal出侧滑栏控制器。
NENSlideMenu Demo
喜欢就给个star吧😊
网友评论