[xcode] 背景選單

在IOS的app中,有使用背景選單的就是facebook了

透過一個UINavigationController的按鈕&手指滑動來控制背景選單。


軟體的執行畫面如下  初始載入的頁面




按下選單按鈕,頁面滑動讓底下的選單出現


手指滑動讓主頁往旁邊移動


storybaord

一共有五個viewcontroller,左邊獨立出來的為整個架構頁面,其他四個為選單 載入頁面。

記得將storyboard的ID填上。

viewcontroller.h

import viewcontroller2~5  為切換頁面

array 放載入頁面,選單名稱,選單圖片

tableviewmenu 背景選單

viewmain 用來放切換頁面

nav 用來放buttonmenu 所以需要

ptouch 紀錄觸控的起始點



viewcontroller.m

先將array初始化,接著把要載入的頁面與storyboard的ID做指定。

然後透過副程式 將選單對應的viewcontroller 圖片 選單名稱 放入NSMutableDictionary

,再加入到array之中。

tableviewmenu 初始化

nav同樣初始化,接著要預先加入rootviewcontroller ,這邊用的是viewcontroller2,

viewmain 初始化 後,把nav.view加到viewmain裡頭,之所以用viewmain,是為了控制

touch事件,跟動畫控制而已。

buttonmenu 顯示隱藏背景選單用。

用來加入選項到array中,使用nsmutabledictionary 是作為tableview section row 對應

tableview 的部分用來做背景選單,選項名稱,圖片,要載入的viewcontroller都在array中

,dic 裡面個別放的也是陣列,所以這邊就會形成二維陣列的方式,供不同section 裡面

不同row去對應。

-(ibaction)actionmenu()
按鈕按一下做動畫的處理,顯示或隱藏viewmain。

-(void)touchesbegan()
將觸控到viewmain的第一點給記錄到ptouch

-(void)tochesmoved()
比對移動了多遠之後,移動viewmain

-(void)touchesended()
檢查viewmain 所在的位置,如果大於一半那就隱藏viewmian,不是就顯示viewmain。

透過動畫去補償手指移開之後的動作。



viewcontroller2.h



viewcontroller2.m

裡面只有宣告一個label顯示viewcontroller2

viewcontroller2~5裡面都是一樣只有一個label 顯示各自不同文字而已。


圖檔,記得放入專案中。



整體就是一個簡單的背景選單,觸控選單滑動的部分還可以加入邊界控制,

這邊並沒有寫,實際使用上還是需要再多做判斷,因為這邊只有簡單的達成功能,

所以細部就請自行撰寫吧!



沒有留言:

張貼留言