為了犒勞自己的學習内容,就山寨個微信的視圖控制吧。拿着微信,仔細的看了一下,主要用到了tabbarcontroller以及配置tabbaritem, navigationcontroller以及配置navigationbaritem, 還用到了我們比較複雜的tableviewcontroller來顯示我們的資料。在用到tableview中既有靜态的tableview,也有動态的tableview。動态的tableview主要用來顯示我們的資料,而靜态的tableview主要用來顯示功能子產品導航時使用。在用到靜态tableview時我們還用到啦分組的和未分組的cell。
1.下面是我們主要的視圖架構,需要時我們會給對應的controller關聯相應的代碼,實作我們的業務邏輯。視圖架構如下:

2.project最終運作的界面如下,下面帶箭頭的cell點進去是一個viewcontroller,下面的圖檔都是在網上找得素材,第一個頁面裡面是放的動态的tableview,裡面的資料是模拟網絡請求過來的動态資料:
3.不能隻貼圖檔對吧,寫程式是少不了代碼的,從第一個頁面入手,如何動态加載我們的tableview. 在進行編碼之前,首先得配置我們的cell模闆,在我們動态tableview中用到幾種cell,我們就配置幾種cell模闆,在配置cell模闆時要設定每個cell的identifier,便于在代碼中根據不同的資料來選擇我們資料對應的cell。我們的tableview的控制類要繼承于我們的uitableviewcontroller類。下面是往我們動态tableview中的cell添加資料
(1)在我們相應的tableviewcontroller類中建立我們的測試資料,來模拟網絡請求。建立一個可變數組,往可變數組中存入100個字典,字典裡模拟使用者資訊。
(2)傳回我們sectionnumber,在這我們就寫一個分組吧,真正的資料是計算出來的
(3)傳回每個分組的行數,這裡我們傳回的時我們建立數組元素的個數
(4)給我們的cell賦資料,通過cell的identifier來建立cell,擷取第幾條資料是通過回調參數indexpath的item來确定擷取第幾條資料
代碼說明:
動态的tableview就是為我們的大資料準備的,預設的事螢幕上顯示多少,就會請求多少資料。随着螢幕的下拉,會請求要顯示的資料,上出螢幕的資料會被釋放掉。若想請求更多,我們需要用代碼實作,在以後的部落格中會介紹,在這不做過多的介紹。動态請求資料如下:
靜态的tableview實作起來比較簡單,配置起來也比較簡單,在這不做贅述。上面的東西隻是防微信的視圖架構,沒有給出具體的業務邏輯。要實作具體的業務邏輯,我們需要給每個viewcontroller關聯實體類,然後在每個類中實作我們對應的業務邏輯,這樣分析起來,微信的代碼量還是蠻大的。在以後的部落格中會給出具體的業務邏輯實作,本篇部落格先做一個引子吧。