很多軟件都運了抽屜效果偎捎,比如qq的左抽屜序攘,滴滴打車寻拂,和uber都運用了抽屜,那么抽屜到底是什么個套路呢祭钉,這里講下我個人的理解。
github上看了幾個抽屜的demo距境,好用有代表性的有垮卓,MMDrawerController-with-storybord-demo,還有RESideMenu伪货。
這兩個挺好用的钾怔,但是跟個人的實際需求還是有區(qū)別的。有些交互和設計并不是跟這些完全一樣愚臀,所以我們就要了解抽屜的設計思想矾利,和建立框架。
首先講下MMDrawerController舶斧,
將這個代碼在
我們看代碼茴厉,會發(fā)現(xiàn)他用drawerController對中心vc和leftVc和rightVc進行控制什荣,也就是說我們的rootVC就是這個drawerController,而左中右的vc是二級的平行vc稻爬,從圖上的效果,我們也可以看不來是這個關系琉雳,分析出這個關系,我們也就可以確定吹缔,這個抽屜效果是否適合自己的項目锯茄。
我么再來分析下RESideMenu:
我們可以看到中心視圖縮小,左右視圖在中心視圖的背后晚碾,這里也給出了使用方法:
可以看出root依然是sideMenuViewController喂急,sideMenuViewController控制著左中右。
根據(jù)以上兩個例子糕簿,我們可以看出狡孔,抽屜效果中抽屜vc和centerVC是平級的,我們可以創(chuàng)建一個rootvc苗膝,然后自己控制左中右辱揭,我們一般在做項目的時候,把中vc設置為navigationVC或者tabbarVC问窃。沒有把抽屜的vc寫在主vc的下一級別域庇,因為是vc獨立出來,方便我們的使用和調(diào)用咕别,和主vc沒有關系写穴,減少耦合雌贱。這樣我們可以在抽屜VC里隨意更改和制作偿短,不會影響主邏輯馋没。
如何自己創(chuàng)建輕量級抽屜:
這里我根據(jù)這個思想,自己制作一個輕量級抽屜:
因為我需要用不到那么多勾怒,或者跟三方抽屜并不是很一樣声旺,這樣我就自己寫一個簡單的抽屜,效果可以自己隨意更改鉴扫,目前就是個簡單的澈缺,回頭多加點其他效果。
很簡單的思想:BaseViewController就是主vc莱预,LeftViewController就是左抽屜项滑。RootViewController就是控制器,控制這兩個vc悉抵。這里主要就是自己寫好RootViewController就好摘完。RootViewController可以借鑒以上倆例子中的動效,自己修改孝治。
以上是自己的理解,有好的理解岂座,和建議杭措,歡迎討論??。