自定义 xib 单元格未出现在 UITableView 上 swift

Custom xib cells are not appearing on UITableView swift

我的细胞没有出现。 我做了:

我没有做的事情: 我正在为自动布局而苦苦挣扎,所以我决定不这样做。

我的应用正在加载正确数量的单元格,但单元格未注册。

我的代码:

import UIKit

class WelcomeViewController: UITableViewController, NetworkManagerDelegate {

    private var networkManager = NetworkManager()
    private var infoForCells = [Result]()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.register(UINib(nibName: "ImageViewCell", bundle: nil), forCellReuseIdentifier: "imageCell")
        
        networkManager.delegate = self
        networkManager.fetchNews()
        
        
        
        
    }


    // MARK: - Table view data source
    override func numberOfSections(in tableView: UITableView) -> Int {

        return 1
    }
    

    
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return infoForCells.count
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
         guard let cell = tableView.dequeueReusableCell(withIdentifier: "imageCell", for: indexPath) as? ImageViewCell else{
            return UITableViewCell(style: .default, reuseIdentifier: "cell")
        }

        
        let cellIndex = infoForCells[indexPath.row]

        
        cell.titleForImage.text = cellIndex.alt_description
        print(cell.titleForImage ?? "lol")
//        if let image = cellIndex.urlToImage {
//            cell.imageForArticle.load(url: image)
//        }
        
        return cell
        
    }
    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    }
    
    func didUpdateNews(root: Root) {
        infoForCells = root.results

     
    }
    
}

重新加载 table

func didUpdateNews(root: Root) {
  infoForCells = root.results
  tableView.reloadData()
}

除了Sh_Khan的回答你还可以收听infoForCells属性

的更新
private var infoForCells = [Result]() {
    didSet {
        DispatchQueue.main.async { [weak self] in
             self?.tableView.reloadData()
        }
    }
}