我正在尝试根据数组中的项目显示tableview单元格,但由于某些奇怪的原因,它只会显示数组中的第一项。当我使用print语句时,它会显示正确迭代的数组。
这是数组:
var restaurants = ["Truckyard", "EasySlider", "Revolver", "Armoury"]
这是cellForRowAtIndexPath:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = restaurantTableView.dequeueReusableCell(withIdentifier: reuseIdentifier, for: indexPath) as! restaurantCell
for rest in restaurants {
cell.restaurantImageView.image = UIImage(named: rest)
cell.restaurantNameLabel.text = rest
}
return cell
}
答案 0 :(得分:2)
每行调用一次cellForIndexPath。试试这个:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = restaurantTableView.dequeueReusableCell(withIdentifier: reuseIdentifier, for: indexPath) as! restaurantCell
cell.restaurantImageView.image = UIImage(named: restaurants[indexPath.row])
cell.restaurantNameLabel.text = restaurants[indexPath.row]
return cell
}
答案 1 :(得分:0)
无需循环。 cellForRowAt为您提供indexPath。检查indexPath.row属性。如果您只有一个部分,则该行是您要访问的阵列中项目的索引。你基本上是为每一行迭代你的数组,这将不可避免地将你的最后一项设置为标题/图像