簡體   English   中英

如何修復表視圖單元格在啟動時不顯示?

[英]How to fix Table View Cells not showing on launch?

問候各位讀者,首先,我要說的是,我在這里閱讀過很多類似的文章,幾乎都遇到了相同的問題,並且在我的項目中已經從這里實現了很多代碼,我可以肯定地說我是在同一頁面上,空白表格視圖。

我試圖將數據從API調用加載到表視圖單元格,主要是僅標題(僅文本),並且我成功完成了API調用並將API調用的數據存儲到數組中,以用於訪問數據從。

我試過的內容:-在固定行高度和自動行高度之間交替-在viewDidLoad()上加載tableView.delegate和tableView.dataSource,還在情節提要中設置委托和dataSource-在使用forEach()方法和用於'item之間進行交替'in ...-設置斷點,但是我根本不了解它們,例如,我沒有到達任何類似'func tableView(_ tableview:...)'的斷點,這些功能中的數據也不會打印在控制台-在情節提要表View Cell上放置一個標識符,並使用該標識符打印出單元格-在viewWillLoad()中使用.reloadData()

extension HomeViewController: UITableViewDelegate {

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        let item = items[indexPath.row]
        print("Selected Item: \(item)")
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 100.0;
    }
}

extension HomeViewController: UITableViewDataSource {

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        print("CURRENT INDEX PATH BEING CONFIGURED: \(indexPath)")
        let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: ShowsTableViewCell.self), for: indexPath) as! ShowsTableViewCell
            cell.configure(with: items[indexPath.row])

//        let something: Show
//        something = items[indexPath.row]
//
//        cell.titleTVShow.text = something.title
          return cell
    }
}
 switch response.result {
                case .success(let shows):
                    print("Succes: \(shows)")
                    shows.forEach { show in
                        self.items.append(show)
                    }
                case .failure(let error):
                    print("Eror: \(error)")
                }
extension ShowsTableViewCell {
    func configure(with item: Show) {
        titleTVShow.text = item.title
        thumbnailTVShow.image = nil
    }
}
struct Show: Codable {
    let idShow: String
    let title: String
    let imageUrl: String
    let likesCount: Int

    enum CodingKeys: String, CodingKey {
        case idShow = "_id"
        case title
        case imageUrl
        case likesCount
    }
}

我沒有任何錯誤。 該API成功進行,並從控制台中的json打印出數據。 我希望從tableView的API調用中加載數據,但這沒有發生。

首先嘗試調試是否調用了表視圖委托和數據源方法。 然后將API響應存儲在數組中后,重新加載表視圖。 之后,self.items.append(show)。

嘗試這個。

 switch response.result {
            case .success(let shows):
                print("Succes: \(shows)")
                shows.forEach { show in
                    self.items.append(show)
                }
                self.tableView.reloadData()
            case .failure(let error):
                print("Eror: \(error)")
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM