[Swift通天遁地]2、表格表單-(1)建立自定義的UITableViewCell(單元格類)

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-vsuhxxws-kb.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftgit

本文將演示如何在表單視圖中,添加一個自定義的單元格類。github

首先建立一個自定義的單元格類。swift

在項目文件夾【DemoApp】上點擊鼠標右鍵,彈出右鍵菜單。微信

【New File】->【Cocoa Touch Class】->【Next】->ide

【Class】:CustomizeUITableViewCell ,類名。post

【Subclass of】:UITableViewCell ,父類字體

【Language】:Swiftui

->【Next】->【Create】spa

在項目導航區,打開剛剛建立的代碼文件【CustomizeUITableViewCell.swift】

如今開始編寫代碼,往自定義單元格中,添加一些控件。

 1 import UIKit
 2 
 3 class CustomizeUITableViewCell: UITableViewCell
 4 {
 5     //該單元格擁有三個子元素,分別是:
 6     //1.左側的縮略圖
 7     var thumbnail : UIImageView!
 8     //2.中間的標題
 9     var title : UILabel!
10     //3.右側的細節按鈕
11     var detail : UIButton!
12     
13     //重寫單元格的自定義方法,在該方法中對單元格進行自定義操做
14     override init(style: UITableViewCellStyle, reuseIdentifier: String?)
15     {
16         //首先實現父類的初始化方法
17         super.init(style: style, reuseIdentifier: reuseIdentifier);
18         
19         //初始化縮略圖對象,用來顯示項目中的一張圖片
20         self.thumbnail = UIImageView(image: UIImage(named: "user"))
21         //設置縮略圖在單元格中的顯示區域,位於單元格的左側
22         self.thumbnail.frame = CGRect(x: 20, y: 10, width: 24, height: 24)
23         
24         //初始化標題標籤,並設置該標籤的顯示區域
25         self.title = UILabel(frame: CGRect(x: 80, y: 0, width: 120, height: 44))
26         //設置標籤的文字內容
27         self.title.text = ""
28         //設置標籤字體的外觀屬性
29         self.title.font = UIFont(name: "Arial", size: 15)
30         
31         //初始化細節按鈕控件,並設置按鈕的顯示區域,位於單元格的右側
32         self.detail = UIButton(frame: CGRect(x: 240, y: 12, width: 60, height: 20))
33         //設置按鈕在正常狀態下的標題文字
34         self.detail.setTitle("Detail", for: UIControlState())
35         //設置按鈕標題文字的字體屬性
36         self.detail.titleLabel?.font = UIFont(name: "Arial", size: 13)
37         //設置按鈕的背景顏色爲橙色
38         self.detail.backgroundColor = UIColor.orange
39         //設置按鈕的層的圓角半徑爲10,從而建立一個圓角按鈕。
40         self.detail.layer.cornerRadius = 10
41         //給按鈕控件綁定點擊事件
42         self.detail.addTarget(self, action: #selector(CustomizeUITableViewCell.showDetail(_:)), for: UIControlEvents.touchUpInside)
43         
44         //依次將三個控件添加到單元格中
45         self.addSubview(self.thumbnail)
46         self.addSubview(self.title)
47         self.addSubview(self.detail)
48     }
49     
50     //添加一個方法,用來響應細節按鈕的點擊事件
51     func showDetail(_ sender:UIButton)
52     {
53         print("Detail Informaiton.")
54     }
55     
56     //添加一個必須實現的初始化方法
57     required init(coder aDecoder: NSCoder)
58     {
59         fatalError("init(code:)has not brrn implomented");
60     }
61 }

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】

如今開始建立一個表格,並在表格中使用剛剛建立的單元格。

 1 import UIKit
 2 
 3 //使當前的視圖控制器類,遵循表格的數據源協議UITableViewDataSource
 4 class ViewController: UIViewController, UITableViewDataSource {
 5 
 6     override func viewDidLoad() {
 7         super.viewDidLoad()
 8         // Do any additional setup after loading the view, typically from a nib.
 9         
10         //得到設備的屏幕尺寸
11         let screenRect = UIScreen.main.bounds
12         //建立一個矩形區域,做爲表格視圖的顯示區域。
13         let tableRect = CGRect(x: 0, y: 20, width: screenRect.size.width, height: screenRect.size.height - 20)
14         //初始化一個指定顯示區域的表格對象
15         let tableView = UITableView(frame: tableRect)
16         
17         //設置表格對象的數據源爲當前的視圖控制器對象
18         tableView.dataSource = self
19         //並將表格視圖添加到當前的視圖控制器的根視圖中
20         self.view.addSubview(tableView)
21     }
22     
23     //添加一個代理方法,用來設置表格的行數
24     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
25     {
26         //在此設置表格擁有20個單元格
27         return 20
28     }
29     
30     //添加一個代理方法,用來初始化或複用表格中的單元格
31     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
32     {
33         //建立一個字符串常量,做爲單元格的複用標識
34         let identifier = "reusedCell"
35         //根據複用標識從表格中獲取能夠複用的單元格
36         var cell:CustomizeUITableViewCell? = tableView.dequeueReusableCell(withIdentifier: identifier) as? CustomizeUITableViewCell
37         
38         //若是沒有能夠複用的單元格
39         if(cell == nil)
40         {
41             //則初始化一個自定義的單元格,並設置單元格的複用標識。
42             cell = CustomizeUITableViewCell(style: UITableViewCellStyle.default, 
43                                             reuseIdentifier: identifier)
44         }
45         
46         //設置自定義單元格的標題文字
47         //固然也能夠設置單元格的縮略圖和細節按鈕的相關屬性
48         cell?.title?.text = "User Name"
49         return cell!
50     }
51     
52     override func didReceiveMemoryWarning() {
53         super.didReceiveMemoryWarning()
54         // Dispose of any resources that can be recreated.
55     }
56 }
相關文章
相關標籤/搜索