无法在表格视图中显示文本标签

Posted

技术标签:

【中文标题】无法在表格视图中显示文本标签【英文标题】:unable to display text label in table view 【发布时间】:2020-05-11 10:17:14 【问题描述】:

我正在使用自定义单元格构建表格视图。及时单元格应该包含各种标签,但目前只有一个标签(用作测试)。

当我运行应用程序时,一切看起来都不错,但是 cell.textLabel.text 没有出现在应用程序中。每个单元格都是空白的。

对于显示的数据,我在此处可见的单独文件中构建了一个模型:

import Foundation

class CountryDataModel 
    let countryName: String
    let casesData: String
    let deathsData: String
    let recoveriesData: String
    
    init(country: String, cases: String, deaths: String, recoveries: String) 
        
        countryName = country
        casesData = cases
        deathsData = deaths
        recoveriesData = recoveries
        
    

这是表格视图的视图控制器:

import UIKit

class PaysTableViewController: UITableViewController 

    override func viewDidLoad() 
        super.viewDidLoad()

        // Uncomment the following line to preserve selection between presentations
        
        listOfCountryAndRelatedData()
        
    
    
    //MARK: - Relevant data
    var countryList = [CountryDataModel]()

    // MARK: - Table view data source

    override func numberOfSections(in tableView: UITableView) -> Int 
        // #warning Incomplete implementation, return the number of sections
        return 0
    

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        // #warning Incomplete implementation, return the number of rows
        return countryList.count
    

    //
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)

        // Configure the cell...
        let indexPath = countryList[indexPath.row]
        
        cell.textLabel?.text = indexPath.countryName

        return cell
    
    
    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
        print("success")
    

 
    func listOfCountryAndRelatedData() 
        
        let country1 = CountryDataModel(country: "Algeria", cases: "0", deaths: "0", recoveries: "0")
        countryList.append(country1)
        
        let country2 = CountryDataModel(country: "Bahamas", cases: "0", deaths: "0", recoveries: "0")
        countryList.append(country2)
        
        let country3 = CountryDataModel(country: "Seychelles", cases: "0", deaths: "0", recoveries: "0")
        countryList.append(country3)
        
        
        
    

【问题讨论】:

在将数据附加到数组后尝试使用tableView.reloadData() 方法。确保为 tableView 设置了 delegatedatasource 【参考方案1】:

将 numberOfSections 设置为 1

override func numberOfSections(in tableView: UITableView) -> Int 
        return 1

然后在将数据添加到您的 countryList

后刷新您的表格
func listOfCountryAndRelatedData() 
 //add your data to arry

   self.tableView.reloadData()


【讨论】:

以上是关于无法在表格视图中显示文本标签的主要内容,如果未能解决你的问题,请参考以下文章

如何固定表格视图中自定义单元格文本字段的标签值?

如何更改表格视图中的标签文本颜色(存储在数组中的数据)

如何在表格视图的单元格中使用夏季元素作为标签?

找到数据时表格视图中的自定义标签文本?目标c

单击表格视图中的按钮时如何更改表格视图外部的标签文本

使用表格视图标题中的扩展文本扩展标签和视图