行動裝置 App左側導覽列的元素的出現,應該是在去年年中時候,看到大部分的應用實現從上下側tab到左側menu的演化。
左側導覽列設計的理念的有一點說是,減少行動裝置 App的介面雍容,後來發現在web應用中也開始大量出現該設計,比如我常用的豆瓣FM,
它是類似於用了左側抽屜的設計。
對於一般概念的抽屜概念,Andriod倒是早有SlidingDrawer這個SDK提供的api,不過後期大量實現的都是自訂frame布局或是其他。
在行動裝置 App介面互動的設計上,左側導覽列的出現,有一點來說,確實是比傳統的上下選項卡切換相對來的新奇,控制項布局上空間的減少。
作為一個閑的蛋疼的人,以至於我早期也有打算把我們公司的應用導航上做一個視覺重構。
但是後來考慮到我們應用面向的使用者年齡層,以及應用在使用者中側重點的問題,也就沒做改動。
因為對於30歲以上的使用者來說,習慣性以及傳統的守舊思想。
對於一些時尚型,科技型,牛逼型,社交類扥應用,倒是可以做一些推陳出新的新鮮設計。
因此,我個人的考慮是,在兩種情況下,可以考慮用用,
第一種,在對於有兩級以上的切換欄導航。
第二種,閑的蛋疼
先畫個簡單的圖說明下
假設1,2,3,4,5是一級切換菜單;
T1,T2,T3。。是二級切換菜單。
若是未使用下冊切換tab菜單,由於中間顯示內容的空間就會比較狹小。此時就可以考慮使用左側功能表列。
。。。
大致模型就是如。
可以分別實現:左側菜單,右側菜單,左右兩側菜單。
大致說下原理和步驟:
1.將SideNav設計成一個ViewController控制項,用來管理控制3個ViewController:LeftVC,RootVC,RightVC;也算一種常見的思路,比如Tabviewcontroller其實也差不多這樣,可以理解是一個管理ViewController的controller控制器。
2.Setter入內容,左,右側導覽列控制器。同時需要重設內容頁也就是rootViewController的NavBar,比如,只是SetLeft,那麼只會顯示左側按鈕。
3. 左側右側菜單出現的實現:因為SideNav本身也是一個ViewController,那麼他本身內建一個View,在預設set了RootViewController時(或者說是內容ViewController),
顯示時,將RootViewController的View依附到SideNav的View上面;在點擊顯示左側功能表列時,將LeftVC中的View插入添加到SideNav的View的第一層子視圖,rootView就成了第二層,然後在改變rootView的原點左邊,整體往右邊移動。顯示右側導覽列思路一樣。
4.點擊左側菜單控制介面的某個功能表按鈕跳轉切換,以前看到的一個代碼例子類似是使用了全域控制器的思路,直接根據Appdelegate拿到SideNavVC的對象來操作,
也可考慮使用委託來實現。
5.手勢,細化和改進。
該demo部分是資料來源於互連網,在早期的一個應用中用到過,這個是進過簡化的簡單修改的版本
:1.修改了可以設定單側或兩側欄均可實現,
2.兩側菜單可見地區的自訂。
3.修改部分手勢實現代碼
4.製造了一些新的bug。
個人建議:整體demo的參考可以分兩部分:1,基本模型切換;2,手勢動畫效果的最佳化添加。
demo:不上種,菊花萬人捅。