Table View 又稱為表格元件,可以一列一列的方式顯示資料,每一列資料稱為儲存格 (Cell) ,每個儲存格可以包含一個或多個不同型別的元件。
其常用的屬性有以下幾個:
1. Content : 設定表格中儲存格的產生方式,預設為 Dynamic Prototype ,表示以動態方式建立。Statics Cells 則可以靜態方式建立
2. Prototype Cells : 設定表格中儲存格的數目,預設為 0
3. Style : 設定表格中儲存格是否以群組方式顯示,預設為 Plain ,表示非群組方式。 Grouped 則表示以群組方式顯示
4. Separator : 設定表格中儲存格間的分隔線,預設為 Default ,表示顯示分隔線。若為 None 則不顯示,若為 Single Line 則顯示分隔線
5. Separator Insets : 預設為 Default ,設定為 Custom 則可定義分隔線的左右間距
6. Sections : 設定表格中包含多少區段,屬性當 Content 設定為 Statics Cell 才有作用
除了建立 Table View 以外,還必須進一步建立 Table View Cell ,因為預設的 Table View 未包含任何儲存格。
而以下是 Table View Cell 的常用屬性:
1. Style : 有許多樣板可以選擇,諸如 Basic, Right Detail, Left Detail, Subtitle, Custom 等等
2. Image : 設定儲存格中的圖示
3. Identifier : 設定儲存格名稱
4. Accessory : 設定表格中儲存格的指示器,例如 None 代表不顯示,Disclosure Indicator 表示連結到另一個細節的頁面,Detail Disclosure 代表驚嘆號圖示,Checkmark 指示選取的狀態
5. Separator : 設定分隔線, Default Insets 可顯示部份分隔線,Custom Insets 可顯示完整的分隔線
指示器的主要功能是提示如何操作此儲存格。
要使動態建立的儲存格顯示資料,必須實作 UITableViewDataSource 和 UITableViewDDelegate 。
UITableViewDataSource 敘述表格共用有幾個區,每一區有多少列,每一列的資料分別是什麼。
常用的方法有以下三個:
1. numberOfSectionInTableView : 設定共有多少區段,預設為 1
2. numberOfRowsSection : 設定每一區段有多少列
3. cellForRowAtIndexPath : 設定表格中儲存格的內容
UITableViewDelegate 設定表格的外觀及觸發的方法。
另外如果想要處理儲存格點選後的動作,需要實作 UITableViewDelegate 方法還有 didSelectRowAtIndexPath 方法。
UITableViewDelegate 的方法如下所示:
1. didSelectorRowAtIndexPath : 儲存格即將被選取時發生的事件
2. willSelectionRowAtIndexPath : 點選儲存格發生的事件
3. editingStyleForRowAtIndexPath : 設定滑動後顯示紅色刪除按鈕
有時候需要對表格進行編輯,例如變更儲存格的資料、刪除儲存格或者是改變儲存格的順序。
若是需要變更儲存格的內容就必須使用 NSMutableArray 動態的陣列,而非靜態的陣列。
ex : var balls:NSMutableArray = ["籃球", "足球", "棒球"]
另外想要處理儲存格的編輯動作還必須實作 UITableViewDataSource 和 UITableViewDelegate 方法:
1. editingStyleForRowAtIndexPath : 設定滑動後顯示紅色刪除按鈕
2. commitEditingStyle : 刪除該儲存格的資料
3. canMoveRowAtIndexPath : 設定儲存格是否可以拖曳
4. move N F L RowAtIndexPath : 將動態陣列中的資料移到指定位置