全部列表式的數據都是用 TableView 顯示的html
預覽
待補充ios
原料
- NSFetchedResultsController
用來操做 NSFetchRequst,有執行查詢,監聽變化,數據緩存等功能
- NSFetchRequest
用來指定用什麼條件查哪一個表,結果集怎麼排序
- NSSortDescriptor
排序方式 必須
- NSPredicate
謂語,其實就是查詢條件,可選
- UITableView
- UITableViewController
- UITableVIew 必須指定 DataSource,只要沒特殊要求直接用這個 ViewController 就行了,這個類同時聲明瞭下面兩個協議
- UITableViewDataSource
顧名思義這個協議要實現數據源相關特性
- UITableViewDelegate
負責 TableView 的表現和動做的協議
步驟
- Storyboard 裏拖一個 Table View Controller,這個 Table View Controller 自帶一個 TableView 還有一個 TableViewCell
- 定義一個 UITableViewController 的子類,在 Storyboard 裏把剛纔那個 Table View Controller 的 Class 設爲這個子類
- 聲明一個 NSFetchedResultsController 私有變量,在 viewDidLoad 裏初始化。
- 重寫兩個方法
- numberOfRowsInSection 返回指定分組的行數,NSFetchedResultsController 知道答案
- cellForRowAtIndexPath 經過 NSFetchedResultsController 獲取到數據後設定單元格的顯示值,而後再返回這個單元格
- 能夠冒煙測試一下了
代碼片斷
只有 cellForRowAtIndexPath 的常規寫法有些特別,這裏只貼出它的例子編程
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) 緩存
-> UITableViewCell {app
var cellId = "cellId" //屬性編輯器裏 給 TableViewCell 設定的 Identifier 編輯器
var cell = tableView.dequeueReusableCellWithIdentifier(cellId) as UITableViewCell?ide
if cell == nil{測試
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: cellId)ui
}spa
cell!.textLabel?.text="取出的值"
return cell!
}
連接