UITableView表視圖以及重建機制,uitableview視圖
表視圖UITableView 表視圖UITableView,是IOS中最重要的視圖,隨處可見表視圖通常用來管理一組具有相同資料結構的資料UITableView繼承自UIScrollView,所以可以滾動表視圖的每一條資料都是顯示在UITableViewCell對象中表視圖可以分區顯示資料,每個分區稱為一個section,每一行稱為row,編號都是從0開始 tableView的樣式是個枚舉類型,有兩種樣式:plain和grouped可以根據在不同的使用情境下設定不同的樣式
typedef NS_ENUM(NSInteger, UITableViewStyle) {
UITableViewStylePlain, // regular table view
UITableViewStyleGrouped // preferences style table view
};
DataSource資料來源 我們需要給tableView指定一個資料來源,他負責給tableView提供資料需要實現協議中兩個必須實現的方法
TableView 作為一個空表,自身並不確定項目中需要展示的行數顯示的內容以及儲存格樣式,所以需要通過代理來擷取;
TableView對應的試圖控制器需要遵守UITableViewDataSource協議,並實現兩個必須實現的協議方法
1、每一個分區需要展示多少行,(通過協議方法傳回值提供給TableView)
2、指定分區指定行所需要得儲存格對象(通過協議方法傳回值提供給TableView)
TableView真正展示資料的視圖為其所管理的儲存格所以代理對象在協議方法中建立儲存格的同時需要為儲存格提供資料
設定儲存格的選中樣式 在IOS7開始選中的樣式一共只有兩種可用,一種是選中沒有樣式,一種是選中後顯示灰色
以下是UITableViewDataSource協議中必須實現的兩個方法,以及一些重要屬性的設定
重用機制 UITableView靠mutableSet來實現重用功能出螢幕的cell會被添加到mutableSet中,進入螢幕的cell,先從set中擷取,如果擷取不到,才建立一個cell,在cell顯示之前,給cell賦上響應的內容cell的reuseldentifier是重用的關鍵重用機制是tableView提供的用於控制和最佳化記憶體的解決方案,其原理為:根據TableView的大小以及行高建立指定個數的儲存格,當產生滑動時,一些暫時划出TableView的儲存格就會進入到TableView的重用機制隊列被儲存下來,等待下次繼續使用,那麼代理對象通過當前方法為TableView提供儲存格對象時優先根據提前指定的重用標識符擷取重用隊列中是否有可用的儲存格,如果有,則重新為儲存格添加資料,如果沒有則建立新的儲存格,然後添加資料,返回給表視圖讓其管理顯示下面是重用機制建立的步驟:
表視圖的配置
NSIndexPath 多個分區tableView預設是一個分區,可以設定多個分區tableView的plain、group樣式決定分區的樣式不同,每一個分區可以設定區頭區尾 方法的具體實現如下: 方法的具體實現如下: 方法的具體實現如下: