1. 程式人生 > >iOS應用開發覆盤(二)

iOS應用開發覆盤(二)

上一節我們介紹了iOS工程的搭建和真機除錯的方法。這一節開始介紹列表介面的開發,列表是app裡面最常用的控制元件,沒有之一。

首先我們在工程裡建立介面控制器,繼承UIViewController如下圖所示,UIViewController是iOS介面控制器的基類,封裝了一個UIView作為介面顯示,同時還封裝了很多手勢響應事件和橫豎屏響應事件,但是它實際上還是一個controller,介面顯示都是由UIView負責的,這一點會在下一節具體講解。

我們在TableController.m檔案裡面建立上圖所示程式碼,這是一個特殊的類別,是一個類的私有類別,外部無法訪問,專門用來定義內部物件和實現各種代理用的。這裡我們定義了UITableView物件和一個數組作為資料來源,同時指定需要實現的UITableview必需的兩個代理UITableviewDatasource和UITableviewDelegate。

我們重點看一下UITableviewDatasource,這裡有兩個方法被宣告為required,是必須要實現的方法。一個指定列表的個數,一個生成具體的列表項檢視物件。

我們同時也實現UITableviewDelegate裡面的點選列表項的響應方法。

如上圖所示,這裡小編我使用檢視建立和佈局分離的方法,先說明一下iOS當中UIViewController的建立流程,首先在檢視物件被建立的時候也就是執行init等方法之後viewDidLoad方法就會被呼叫,然後在UIViewController渲染到介面上的時候才會呼叫ViewWillAppear方法,所以我在viewDidLoad中建立了UITableView物件,把它新增到self.view當中,然後當介面渲染的時候再獲取介面的大小對tableview的大小進行修改,這樣在最外層介面發生改變時就能自動改變子類的大小(橫豎屏切換,以及導航欄標題高度改變時都能修改大小),也不需要提前減去導航欄高度,下一節會再舉個栗子說明建立佈局分離的好處。

這裡使用了UITableview物件,要說明一下UITableview建立的時候要註冊單元格的物件,如上圖所示,這是因為UITableviewCell有複用機制,當tableview顯示的時候會生成若干個cell物件填充介面,而當列表滑動的時候超出螢幕的cell物件會被重新利用,填充新的內容再次顯示而不是重新生成cell物件,這樣就能高效的使用記憶體了,提高使用者體驗。如下圖所示,cell都是通過一個標記identifier來管理的,先根據identifier找到空閒的cell,如果沒有空閒cell再建立新的cell。

而在點選事件中我們就跳轉到物理模擬介面了。列表頁小編就介紹到這裡,來看看實際效果,下一節中我們就會具體介紹物理模擬介面的開發。