[Xcode 實際操做]3、視圖控制器-(11)在Storyboard中使用表格控件

目錄:[Swift]Xcode實際操做html

本文將演示表格控件在故事板中的使用。數組

點擊【顯示或隱藏檢查器按鈕】,再界面右側打開檢查器面板。ide

在控制器根視圖上點擊鼠標,以選擇該根視圖。post

如今往根視圖中添加一個表格視圖。ui

點擊【庫面板】圖標,打開控件庫面板spa

在控件庫搜索框內,輸入控件名稱Table View,在控件庫中,快速定位目標控件。代理

而後在按鈕控件上雙擊,導入所需的控件。code

在表格定界框的右下角按下鼠標,並向右下角拖動,以調整表格控件的尺寸。htm

而後點擊庫圖標,再次打開控件庫面板。添加一個單元格控件:Table View Cell對象

將導入的單元格控件,拖動到表格視圖裏。即在根視圖左側的文件樹中拖動文件。

接着選擇表格視圖控件,點擊【尺寸檢查器】圖標,打開尺寸檢查器面板。

【Row Height】:60(行高)

接着選擇單元格控件,一樣設置單元格的高度。

【Row Height】:60(行高)

點擊選擇單元格的內容視圖,接着往單元格的內部,添加一些新的控件。

點擊【庫面板】圖標,打開控件庫面板,以一樣的方式,將圖像視圖添加到單元格中。

在寬度輸入框內,輸入圖像視圖的寬度數值。

在高度輸入框內,輸入圖像視圖的高度數值。

在X輸入框內,輸入圖像視圖在單元格內的橫向座標值

在Y輸入框內,輸入圖像視圖在單元格內的縱向座標值

點擊【屬性檢查器】圖標,進入屬性設置面板。

【Image】:輸入圖片的名稱,設置圖像視圖默認顯示的圖片。

點擊【庫面板】圖標,打開控件庫面板,以一樣的方式,將標籤控件添加到單元格中。

將添加的標籤對象拖動至單元格內適當位置,鼠標在標籤訂界框上按下,調整標籤的寬度。

【Tag】:在標識輸入框內,設置標誌值,經過標誌值,就能夠在代碼中獲取該標籤控件。

【重要】在故事板元素列表中,選擇根視圖中的表格控件,如今給表格添加代理對象:

在表格控件上按下鼠標右鍵,而後拖動到視圖控制器圖標,

在彈出的列表中,選擇【dataSource】數據源選項,設置表格的數據源,爲當前的視圖控制器

繼續在表格上按下鼠標的右鍵,而後拖動到視圖控制器。

在彈出的列表中,選擇【delegate】代理選項,設置表格的代理。

而後選擇單元格控件,設置單元格的重用標識符。

【Identifier】:reusedCell

點擊【隱藏或顯示檢查器】按鈕,隱藏檢查器面板。

點擊打開視圖控制器的代碼文件。

 1 import UIKit
 2 //給視圖控制器類添加兩個代理協議:
 3 //一個是表格視圖的數據源協議,另外一個是表格視圖的代理協議。
 4 class ViewController: UIViewController,UITableViewDelegate, UITableViewDataSource {
 5 
 6     //建立一個數組,
 7     //該數組裏面的數據,將做爲表格數據的來源。
 8     var fruits = ["Apple", "Banana", "Chinese Date", "Downy Picch", "Filbert", "Gingko", "Hawthorn", "Kumquat"]
 9     
10     override func viewDidLoad() {
11         super.viewDidLoad()
12         // Do any additional setup after loading the view, typically from a nib.
13     }
14     
15     //添加一個表格代理方法,用來設置表格的行數。
16     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
17         //這裏設置將數組的長度做爲表格的行數
18         return fruits.count
19     }
20     
21     //添加一個代理方法
22     //用來初始化和返回表格視圖的單元格,是最主要的一個代理方法。
23     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
24         //建立一個字符串,做爲單元格的標識符,
25         //也就是上文在故事板中,給單元格控件設置的那個重用標識符。
26         let identifier = "reusedCell"
27         //單元格的標識符,能夠看做是一種重用機制,此方法能夠從全部已經開闢內存的單元格里面,
28         //選擇一個具備一樣標識符的、空閒的單元格。
29         let cell = tableView.dequeueReusableCell(withIdentifier: identifier, for: indexPath)
30         
31         //經過在故事板中設置的標誌值,得到單元格中的標籤控件。
32         let label = cell.viewWithTag(1) as! UILabel
33         //根據表格行的編號,從數組中得到對應的字符串,從而設置標籤的文字內容。
34         label.text = fruits[(indexPath as NSIndexPath).row]
35         
36         //最後返回設置好的單元格對象。
37         return cell
38     }
39 
40     override func didReceiveMemoryWarning() {
41         super.didReceiveMemoryWarning()
42         // Dispose of any resources that can be recreated.
43     }
44 }
相關文章
相關標籤/搜索