IOS swift 5.0 TableView 的簡單使用,實現列表數據展示、刷新

一、創建一個項目

 

二、實現 TableView 佈局

因爲是新建項目,所以直接在 Main.storyboard 默認的第一個 View Controller 實現

如上圖所示:

給界面添加 Table View 佈局,在Table View 裏面添加 Table View Cell 佈局,Table View Cell 裏面就是根據需求添加的自定義佈局了,這些都可以通過拖動相應的佈局實現

 

三、創建 UITableViewCell 和 Table View Cell 完成綁定

首先創建一個 UITableViewCell ,紅線標示的 UILabel 就是第二步自定義的 Label 佈局

要將上圖紅線標示的 UILabel 與 UITableViewCell 關聯,還需要先實現下圖的步驟

1、選中Table View 打開 -> 

2、點擊 dataSource 右邊的空心圓圈,如箭頭所示右鍵拖動,實現 dataSource 和 View Controller 的綁定。delegate 同樣操作

完成上述操作後就可以實現 上圖紅線標示的 UILabel 與 UITableViewCell 關聯了

 

四、實現 TableView 列表數據展示

1、需要繼承 UITableViewDataSource, UITableViewDelegate,繼承之後可以通過提提示生成 列表長度設置、數據設置的代碼

2、通過 var array:[String] 設置一些模擬數據

3、重點是數據設置那裏

let cell:TableViewCell = tableView.dequeueReusableCell(withIdentifier: "tableViewId", for:indexPath) as! TableViewCell

cell.contentData.text = array[indexPath.row]

TableViewCell 是第三步創建的 UITableViewCell 

withIdentifier: "tableViewId" 如下圖所示設置:

4、刷新數據;正常來說 TableView 經常會刷新數據,我所瞭解的是用 tableView.reloadData() 刷新,有的時候我們會在線程中請求數據,這時如果還是寫 tableView.reloadData() 就會報錯, tableView.reloadData() 需要到主線程運行,我們就可以如下代碼實現:

當然,這時就需要定義一個來關聯佈局裏的 UITableView

@IBOutlet weak var tableView: UITableView!

                //在主線程中刷新數據
                DispatchQueue.main.async(execute: {
                    self.tableView.reloadData()
                })

5、整體代碼展示

TableViewCell.swift

import UIKit

class TableViewCell: UITableViewCell {

    @IBOutlet weak var contentData: UILabel!
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

ViewController.swift

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    
    var array:[String] = ["純代碼自定義cell", "nib自定義cell"]

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
    //長度設置
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
        return array.count
    }
    //數據設置-通過 UITableViewCell 進行數據設置,注意 withIdentifier: "tableViewId"
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell:TableViewCell = tableView.dequeueReusableCell(withIdentifier: "tableViewId", for:indexPath) as! TableViewCell
        cell.contentData.text = array[indexPath.row]
        return cell
    }
    //點擊事件-給數組添加一個數據,通過 tableView.reloadData() 刷新列表
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let str:String = "String\(array.count)"
        array.append(str)
        tableView.reloadData()
    }


}

以上就是 ios 中 UITableView 最簡單的使用了,效果如下:點擊添加 "String" + 下標

 

如果需要實現複雜的佈局,一樣的可以通過上述步驟根據需求自行實現

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章