UITableView 詳細介紹

什麼是 UITableView?

UITableView 是一個最常用的使用者介面物件,它在一列中的多行可滾動列表中顯示資料,也可以分為幾個部分。它只允許垂直滾動,並且是 UIScrollView 的子類。

為什麼我們使用 UITableView?

我們可以使用 UITableView 來顯示可以選擇的選項列表,瀏覽分層結構化資料,呈現專案索引列表,使用部分在視覺上不同的分組中顯示詳細資訊和控制元件。

我們可以在我們的聯絡人,郵件列表等中檢視 UITableView 的使用。它不僅僅被用於呈現文字資料,而且還可以列出影象和文字,例如在 YouTube 應用程式中。

有關使用 Story Board 設定或安裝 UITableView 的詳細說明

  1. 為 Single View 應用程式建立一個簡單的專案。
  2. 在物件庫中,選擇表檢視物件並將其拖動到檢視控制器的檢視中。只需執行專案,你將看到一個帶有線條的空白頁面。
  3. 現在,如果你只想要一個帶內容的可滾動檢視,則將 UIView 拖入 UITableView,調整其大小並根據需要將其餘的 UIElements 拖動到該檢視中。但是如果你想要一個類似格式的列表,我們使用 UITableViewCell
  4. UITableViewCell 類定義 UITableView 物件中出現的單元格的屬性和行為。此類包括用於設定和管理單元格內容和背景(包括文字,影象和自定義檢視),管理單元格選擇和突出顯示狀態,管理附件檢視以及啟動單元格內容編輯的屬性和方法。
  5. 使用 UITableViewCell 的最佳部分是可重用性。dequeueReusableCellWithIdentifier 的目的是使用更少的記憶體。例如,如果你有一個包含 1000 個條目的列表,並且一次只能看到 10 個條目,則只有可見單元格在記憶體中分配,其餘部分將在使用者滾動列表時重複使用。你需要做的就是拖動 UITableViewCell 並放到 tableView。然後單擊單元格 - >轉到屬性檢查器 - >將 tableView 樣式設定為自定義,並將識別符號設定為你想要的任何唯一的 myCell。
  6. 現在我們需要符合資料來源,以便物件將資料提供給另一個物件。例如,UITableViewDataSource 協議具有諸如 cellForRowAtIndexPath 和 numberOfRowsInSection 之類的方法,用於指示應該在表中顯示的內容。委託型別物件響應另一個物件所採取的操作。例如,UITableViewDelegate 協議具有諸如 didSelectRowAtIndexPath 的方法,用於在使用者選擇表格中的特定行時執行動作。7.當你符合資料來源時,你需要實現其所需的方法,即
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
        // Here you need to give the total number of items you want to list. For example if you want list of 2 numbers, then:

           return 2; 

 }

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

//Here you need to dequeue the reusable cell which we discussed in point 5. Then you can modify your cell here according to you and customize it here as per your requirement. Here the call comes for numberOfRows number of times. 

static NSString *cellIdentifier = @"cellID";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
cellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc]initWithStyle:
    UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
} 
if(indexPath.row){
    [cell.textLabel setText:"1"];
}else{
    [cell.textLabel setText:"2"];
}

return cell;
}
  1. 關於 NSIndexPath: - NSIndexPath 類表示巢狀陣列集合樹中特定節點的路徑。此路徑稱為索引路徑。它的物件總是長度為 2.它們用於索引表格檢視單元格。NSIndexPath 物件中的第一個索引稱為節,第二個是行。第 0 部分和第 0 行的索引路徑物件表示第一部分中的第一行。使用 [NSIndexPath indexPathForRow:inSection:] 快速建立索引路徑。