目录:[Swift]Xcode实际操作
本文将演示如何给表格行设置图标。
打开资源文件夹【Assets.xcassets】,
在资源文件夹中导入两张图片:一张彩色,一张灰色,作为单元格的图标。
【+】->【Import】->【Open】
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit
2
3 //首先添加两个协议。
4 //一个是表格视图的代理协议UITableViewDelegate
5 //另一个是表格视图的数据源协议UITableViewDataSource
6 class ViewController: UIViewController, UITableViewDelegate
7 class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
8
9 override func viewDidLoad() {
10 super.viewDidLoad()
11 // Do any additional setup after loading the view, typically from a nib.
12
13 //创建一个位置在(0,40),尺寸为(320,420)的显示区域
14 let rect = CGRect(x: 0, y: 40, width: 320, height: 420)
15 //初始化一个表格视图,并设置其位置和尺寸信息
16 let tableView = UITableView(frame: rect)
17
18 //设置表格视图的代理,为当前的视图控制器
19 tableView.delegate = self
20 //设置表格视图的数据源,为当前的视图控制器
21 tableView.dataSource = self
22
23 //将表格视图,添加到当前视图控制器的根视图中
24 self.view.addSubview(tableView)
25 }
26
27 //添加一个代理方法,用来设置表格视图,拥有单元格的行数
28 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
29 //在此设置表格视图,拥有5行单元格
30 return 5
31 }
32
33 //添加一个代理方法,用来初始化或复用表格视图中的单元格
34 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
35
36 //创建一个字符串,作为单元格的复用标识符
37 let identifier = "reusedCell"
38 //单元格的标识符,可以看作是一种复用机制。
39 //此方法可以从,所有已经开辟内存的单元格里面,选择一个具有同样标识符的、空闲的单元格
40 var cell = tableView.dequeueReusableCell(withIdentifier: identifier)
41
42 //判断在可重用单元格队列中,是否拥有可以重复使用的单元格。
43 if(cell == nil)
44 {
45 //如果在可重用单元格队列中,没有可以重复使用的单元格,
46 //则创建新的单元格。新的单元格具有系统默认的单元格样式,并拥有一个复用标识符。
47 cell = UITableViewCell(style: .subtitle, reuseIdentifier: identifier)
48 }
49
50 //默认样式的单元格,拥有一个标签对象,在此设置标签对象的文字内容。
51 cell?.textLabel?.text = "Cell title here."
52 //在标签对象的下方,还有一个字体较小的描述文字标签,
53 //同样设置该标签对象的文字内容
54 cell?.detailTextLabel?.text = "Detail information here."
55
56 //读取刚刚导入的彩色的图片素材
57 let star = UIImage(named: "Star")
58 //读取刚刚导入的灰色的图片素材
59 let starGray = UIImage(named: "StarGray")
60
61 //将灰色的图片,作为单元格的默认图标
62 cell?.imageView?.image = starGray
63 //将彩色的图片,作为作为单元格的高亮图标
64 cell?.imageView?.highlightedImage = star
65
66 //返回设置好的单元格对象。
67 return cell!
68 }
69
70 override func didReceiveMemoryWarning() {
71 super.didReceiveMemoryWarning()
72 // Dispose of any resources that can be recreated.
73 }
74 }