目錄:[Swift]Xcode實際操做html
本文將演示如何自定義表格的數據來源。swift
在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】數組
1 import UIKit 2 3 //首先添加兩個協議。 4 //一個是表格視圖的代理協議UITableViewDelegate 5 //另外一個是表格視圖的數據源協議UITableViewDataSource 6 class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 7 8 //建立一個數組,做爲表格的數據來源 9 var weeks = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 // Do any additional setup after loading the view, typically from a nib. 14 //建立一個位置在(0,40),尺寸爲(320,420)的顯示區域 15 let rect = CGRect(x: 0, y: 40, width: 320, height: 420) 16 //初始化一個表格視圖,並設置其位置和尺寸信息 17 let tableView = UITableView(frame: rect) 18 19 //設置表格視圖的代理,爲當前的視圖控制器 20 tableView.delegate = self 21 //設置表格視圖的數據源,爲當前的視圖控制器 22 tableView.dataSource = self 23 24 //將表格視圖,添加到當前視圖控制器的根視圖中 25 self.view.addSubview(tableView) 26 } 27 28 //添加一個代理方法,用來設置表格視圖,擁有單元格的行數 29 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 30 //在此使用數組的長度,做爲表格視圖的行數 31 return weeks.count 32 } 33 34 //添加一個代理方法,用來初始化或複用表格視圖中的單元格 35 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 36 37 //建立一個字符串,做爲單元格的複用標識符 38 let identifier = "reusedCell" 39 //單元格的標識符,能夠看做是一種複用機制。 40 //此方法能夠從,全部已經開闢內存的單元格里面,選擇一個具備一樣標識符的、空閒的單元格 41 var cell = tableView.dequeueReusableCell(withIdentifier: identifier) 42 43 //判斷在可重用單元格隊列中,是否擁有能夠重複使用的單元格。 44 if(cell == nil) 45 { 46 //若是在可重用單元格隊列中,沒有能夠重複使用的單元格, 47 //則建立新的單元格。新的單元格具備系統默認的單元格樣式,並擁有一個複用標識符。 48 cell = UITableViewCell(style: .default, reuseIdentifier: identifier) 49 } 50 51 //索引路徑用來標識單元格在表格中的位置。它有section和row兩個屬性, 52 //section:標識單元格處於第幾個段落 53 //row:標識單元格在段落中的第幾行 54 let rowNum = (indexPath as NSIndexPath).row 55 //根據當前單元格的行數,從數組中獲取對應位置的元素,做爲當前單元格的標題文字 56 cell?.textLabel?.text = weeks[rowNum] 57 58 //返回設置好的單元格對象。 59 return cell! 60 } 61 62 override func didReceiveMemoryWarning() { 63 super.didReceiveMemoryWarning() 64 // Dispose of any resources that can be recreated. 65 } 66 }