iOS 抽屉框架思想

很多软件都运了抽屉效果,比如qq的左抽屉,滴滴打车,和uber都运用了抽屉,那么抽屉到底是什么个套路呢,这里讲下我个人的理解。

github上看了几个抽屉的demo,好用有代表性的有,MMDrawerController-with-storybord-demo,还有RESideMenu。

iOS 抽屉框架思想_第1张图片
MMDrawerController


这两个挺好用的,但是跟个人的实际需求还是有区别的。有些交互和设计并不是跟这些完全一样,所以我们就要了解抽屉的设计思想,和建立框架。

首先讲下MMDrawerController,

iOS 抽屉框架思想_第2张图片
集成MMDrawerController代码

将这个代码在

iOS 抽屉框架思想_第3张图片
appdelegate里调用


iOS 抽屉框架思想_第4张图片
左中右内部实现方法

我们看代码,会发现他用drawerController对中心vc和leftVc和rightVc进行控制,也就是说我们的rootVC就是这个drawerController,而左中右的vc是二级的平行vc,从图上的效果,我们也可以看不来是这个关系,分析出这个关系,我们也就可以确定,这个抽屉效果是否适合自己的项目。

我么再来分析下RESideMenu:


iOS 抽屉框架思想_第5张图片
RESideMenu

我们可以看到中心视图缩小,左右视图在中心视图的背后,这里也给出了使用方法:

iOS 抽屉框架思想_第6张图片
RESideMenu调用方法

可以看出root依然是sideMenuViewController,sideMenuViewController控制着左中右。

根据以上两个例子,我们可以看出,抽屉效果中抽屉vc和centerVC是平级的,我们可以创建一个rootvc,然后自己控制左中右,我们一般在做项目的时候,把中vc设置为navigationVC或者tabbarVC。没有把抽屉的vc写在主vc的下一级别,因为是vc独立出来,方便我们的使用和调用,和主vc没有关系,减少耦合。这样我们可以在抽屉VC里随意更改和制作,不会影响主逻辑。

如何自己创建轻量级抽屉:

这里我根据这个思想,自己制作一个轻量级抽屉:

iOS 抽屉框架思想_第7张图片
myDrawer

因为我需要用不到那么多,或者跟三方抽屉并不是很一样,这样我就自己写一个简单的抽屉,效果可以自己随意更改,目前就是个简单的,回头多加点其他效果。

iOS 抽屉框架思想_第8张图片
这是调用代码

很简单的思想:BaseViewController就是主vc,LeftViewController就是左抽屉。RootViewController就是控制器,控制这两个vc。这里主要就是自己写好RootViewController就好。RootViewController可以借鉴以上俩例子中的动效,自己修改。

以上是自己的理解,有好的理解,和建议,欢迎讨论。

你可能感兴趣的:(iOS 抽屉框架思想)