iOS 抽屉框架思想

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

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

MMDrawerController


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

首先讲下MMDrawerController,

集成MMDrawerController代码

将这个代码在

appdelegate里调用


左中右内部实现方法

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

我么再来分析下RESideMenu:


RESideMenu

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

RESideMenu调用方法

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

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

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

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

myDrawer

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

这是调用代码

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

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

推荐阅读更多精彩内容

  • 【1】 昨晚跟小粉群里的粉粉们聊天,聊的火热的时候,突然收到简书读者发来的简信,读者告诉我他读今日头条的时候,发现...
    云朵默阅读 818评论 42 20
  • 有时候你会遇到一些人,他们精力充沛,做事积极,对未来充满无限动,甚至还会跑来对你说:加油啊,你也可以的! 哦。谢谢...
    爱吃面包的甜甜阅读 49评论 0 0
  • 今天休息继续在路上,这次的目的地是南边村老屋!到晓峰风景区s312省道修路,路上车很多,堵车路况极差!驴...
    花生旅途阅读 90评论 0 0
  • 昨天参加了幼儿园组织的线下家庭讲座,听完老师的分享受益良多,从4个方面做了笔记和总结。 1、首先讲到『古人的教育顺...
    蚊子爱读书阅读 372评论 0 2
  • 临近离职,我又开始焦虑了。莫名的醒得越来越早,原本调整好的心态似乎在睡梦中一点点苏醒,然后开始心跳加快,忐忑不安,...
    寶_兒_嫻_倩阅读 33评论 0 0