【发布时间】:2019-07-21 06:36:42
【问题描述】:
各位读者,您好, 首先,我需要说,我在这里阅读了很多类似的帖子,问题几乎相同,并且在我的项目中从这里实现了很多代码,我可以肯定地说我在同一页上仍然是空白表格视图。
我正在尝试将数据从 API 调用加载到表格视图单元格,主要是标题(仅文本),我成功完成了 API 调用并将 API 调用的数据存储到我将使用的数组中访问数据。
我尝试过的: - 在固定和自动行高之间交替 - 在 viewDidLoad() 上加载 tableView.delegate 和 tableView.dataSource,同时在 storyboard 中设置委托和数据源 - 在使用 forEach() 方法和在...中使用 for 'item' 之间交替使用 - 设置断点,但我根本没有到达它们,例如,我没有到达任何断点,如 'func tableView(_ tableview:...)' 也没有在控制台中打印来自这些函数的数据 - 在故事板表格视图单元格中放置一个标识符,并使用该标识符打印出单元格 - 在 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 调用加载数据,但这没有发生。
【问题讨论】:
-
@CordFlakes 首先尝试调试是否调用了表视图委托和数据源方法。然后在 API 响应存储在数组中后重新加载表视图。在此之后,self.items.append(show)
-
如果我可以问你是怎么做到的?顺序是什么,我应该把附加代码放在哪里? (我对 swift 真的很陌生)@ArpitDhamane
标签: ios swift uitableview tableview