iOS 應用中的表視圖(Table View)(譯)

原文地址:About Table Views in iOS Appshtml

表視圖是在iOS應用中最多見到的用戶接口對象。表視圖將數據以多行可滑動列表的形式展示,而且能夠以章節的形式展現。ios

表示圖有不少目的:編程

  • 讓用戶經過分等級的結構瀏覽數據
  • 呈現一個帶索引的列表
  • 經過在視覺上清晰的分組來展現詳細信息和控制
  • 爲多選項展示一個可選列表

圖1-1 不一樣種類的表視圖app

表視圖只有一列,而且只容許垂直滑動。它由多個按章節分組的行組成。每個章節均可以包含一個頭和腳,用來顯示文字或者圖片。不過,大部分表視圖只包含一個章節,而且沒有可見的頭和腳。以編程的角度講,UIKit framework 經過章節和每行的索引數來識別它們:章節從表示圖的頭到底部按照0到n-1編號;在一個章節中,行編號從0到n-1。表視圖能夠擁有它本身的頭和腳,有別於章節的頭和腳;表的頭出如今以一個章節的第一行以前,表的腳出如今最後一個章節的最後一行以後。框架

概覽less

一個表視圖就是UITableView類的兩個基本風格之一的一個實例,plain 或者 grouped。plain 表視圖是一個完整的列表;grouped 表視圖有清晰直觀的sections。表視圖擁有一個數據源,和一個可選的委託(data source and might have a delegate)。數據源對象提供構成表視圖的章節和行的數據。委託對象定製表視圖的外觀和行爲。iphone

 

表視圖經過Cells繪製它們的行:編輯器

表視圖使用cells繪製他的可見行,這個cell就是 UITableViewCell 對象。Cells 是也是視圖(View),能夠顯示文字,圖像和其餘種類的內容。它們能夠擁有背景視圖包括普通狀態和被選中狀態。Cells 也能夠擁有附屬的視圖,佈局

UIKit 框架定義了4種基本的cell風格,每一種都對三種默認的內容元素有它本身的佈局,這三種基本內容元素是:main label,detail label 和 image。你也能夠爲本身的應用的表視圖建立自定義的cell來得到不同凡響的風格。當你經過 storyboard 編輯器配置表視圖的屬性時,你能夠選擇兩種類型的單元格的內容:靜態cell 和動態原型。spa

  • 靜態cells:使用靜態cells設計一個固定行數的表,每個cell均可以有它本身不一樣的佈局。Use static cells when you know what the table looks like at design time, regardless of the specific information it displays.
  • 動態原型:使用動態原型設計一個cell 而後使用它做爲標中其餘cell的模版。在表中使用多個擁有一樣佈局顯示信息的cell時,使用動態原型。動態原型的內容由數據源在運行時動態管理,cell的數量也是變化的。

 

行被選中後的響應(Responding to Selections of Rows)

當用戶選擇一行(經過點擊)時,表視圖經過一個消息通知它的委託。該行的所在章節的索引數以及該行在章節中的索引數會傳遞給表視圖的委託。委託使用這個信息來定位應用數據模型中對應的項。這個項或許只是箇中間項,也多是。若是這個項是處於中間的層次,應用會顯示一個新的表視圖。若是這個項是一個葉節點,應用會以分組式的talbe view或者其餘樣式的view顯示細節。

在表視圖列出的一系列的選項,簡單的點擊某一行的相關選項。沒有後續的數據視圖被顯示。

 

在編輯模式中,容許增長,刪除和重排列行:

表視圖能夠進入編輯模式,該模式容許用戶插入或者刪除行,或者在當前表中從新安置這些行。在編輯模式中,行得左邊會顯示增長或者刪除按鈕,增長是綠色加號,刪除是紅色減號。若是用戶點擊刪除控件,或者在某些表示圖中橫向清掃行出現一個紅色刪除按鈕,這些都提示用戶刪除該行。能夠被重定位的行,在右部邊緣會顯示由幾條平行線組成的圖像。當表視圖推出編輯模式後,增長刪除和重排列控件都會消失。

當用戶試圖編輯表示圖的行時,表示圖會給它本身的數據源和託管發送一些列的消息,好讓他們能管管理用戶的編輯操做。

 

經過stroyboard建立表視圖:

最容易,也是最受推薦的建立和管理表視圖的方法就是,在storyboard中使用自定義的UITableViewControllor對象。若是你的應用程序很大程度上是基於表視圖,推薦你使用Master-Detail應用程序模板來建立你的Xcode項目。這個模板包含一個初始自定義的UITabaleViewController類和一個該場景的 storyboard(在 user interface,包含這個自定義視圖空間和它的表視圖)。 在storyboard 編輯器中,選擇表示圖兩種風格中的一種,並編輯它的內容。

在運行時刻,UITableViewControllo 建立這個表視圖,而且把本身註冊成爲它的數據源和delegate。當表示圖被建立後,當即就會向數據源請求section 和 row 的數量,表視圖的cell用來繪製每一行。數據源管理用來填充表視圖的section 和 row的程序數據。

(轉載請標明出處:點我

相關文章
相關標籤/搜索