前幾個禮拜在我課程專屬的Facebook社團裡,有同學推薦我使用第三方的類別。這個第三方類別可以來做出好像Facebook應用程式中、從左邊或右邊秀出更多畫面的效果。如果你也想做出這樣的效果,需要下載一個叫做SlideMenuController的類別。這篇文章在記錄如何使用SlideMenuController類別。

 

***** 下載SlideMenuController *****
請先打開Google、搜尋SlideMenuControllerSwift。到SlideMenuController 的 Github網頁之後,選Source資料夾。

SlideMenuController1

 

點進去選SlideMenuController.swift。

SlideMenuController2

 

選Raw,

SlideMenuController3

 

之後按右鍵,按 [將網頁儲存為],把檔案儲存下來,存在您想要存的地方。

SlideMenuController4

 

問說要不要加txt附檔名時,選擇不要加。這樣,就把需要的類別下載下來了。

SlideMenuController5

 

***** 原理 *****
使用的話,原理是這樣:SlideMenuController是一個好像NavigationController的容器。這個容器有三個畫面,中間的是mainViewController,左邊的是leftViewController,右邊的是rightViewController。使用的話,就把這三個ViewController產生出來,設定好就好了。

SlideMenuController6

 

***** 開始製作 *****
請新開一個Project,Single View Project。Project名稱請隨意命名,存檔的地方隨意。把剛下載的SlideMenuController.swift匯入進來。

使用的話,請打開Storyboard,拉入三個ViewController。
為了區別,把第一個ViewController的底色調成紅色,第二個ViewController的底色調成綠色,第三個ViewController個的底色調成粉紅色。之後,把第一個ViewController的StoryboardID,設成main、第二個設成left,第三個設成right。

我們要做的是這樣, 把原始的這個ViewController當成SlideMenuController、當成是好像NavigationController的容器,中間的ViewController要顯示紅色的ViewController,左邊的顯示綠色的ViewController,右邊的顯示這個粉紅色的ViewController。

SlideMenuController7

 

***** ViewController 設定 *****
設定好了之後,回到程式碼。把ViewController類別當作SlideViewController的子類別。在類別裡面覆寫 awakeFromNib方法,在裡面把所有的ViewController生出來。把所有的ViewController連結完畢。這時編譯程式的話,就可以看到主畫面是紅色。向右滑,可以看到左邊的ViewController、按中間回到主畫面;向左滑,可以看到右邊的ViewController、按中間回到主畫面。

Add

 

***** 使用 *****
如果只想要看到左邊的ViewController、不想看到右邊的話,就不要設定右邊的rightViewController就好了,反之亦然。
畫面上,可以加上按鈕,控制秀出或是隱藏左右邊的ViewController。使用self.slideMenuController()?.openLeft()或openRight()就可以開啟左邊或右邊的ViewController、隱藏的話,就self.slideMenuController()?.closeLeft()或closeRight()就會關閉了。使用起來超簡單、超直覺。我覺得很好用,分享給大家。

 


相關連結
******************************************
最完整的線上中文 iPhone 開發課程 [課程連結]
製作旋鈕的方法 [教學連結]
Swift 和 Objective C混用方法 [教學連結]

(1444)

superstardj

been a DJ, a rapper, a musician and a recording artist... a novel-writer, a language-book author, and a chief editor... a painter, a book-cover designer and many more... right now a programmer who designs mobile application, both iOS and Android devices...

Leave a Reply

Your email address will not be published. Required fields are marked *