[英]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.