ios - 滚动时 Swift 3 自定义单元格更改

标签 ios xcode uitableview swift3

抱歉,我知道这是一个重复问题,但我无法理解其他问题的答案。

我的自定义单元格在滚动时发生变化。我知道这是由于重用标识符造成的,但我不知道如何解决。任何帮助,将不胜感激。我也在使用 indexPath.row 访问数组。

如何让我的 TableView 在滚动时不更改值,即使我使用的是重用标识符?

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell : TeamCell = tableView.dequeueReusableCell(withIdentifier: "TeamCell", for: indexPath) as! TeamCell

    cell.trainer.image = UIImage(named: "t\(Player.User.Gold.trainers[(indexPath as NSIndexPath).row].imageID)")
    if Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p1.name != 0 {
        cell.pokemon1.image = UIImage(named: "\(Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p1.name)")
        cell.pokemon1.isHidden = false
    } else {
        cell.pokemon1.isHidden = true
    }
    if Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p2.name != 0 {
        cell.pokemon2.image = UIImage(named: "\(Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p2.name)")
        cell.pokemon1.isHidden = false
    } else {
        cell.pokemon2.isHidden = true
    }
    if Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p3.name != 0 {
        cell.pokemon3.image = UIImage(named: "\(Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p3.name)")
        cell.pokemon1.isHidden = false
    } else {
        cell.pokemon3.isHidden = true
    }
    if Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p4.name != 0 {
        cell.pokemon4.image = UIImage(named: "\(Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p4.name)")
        cell.pokemon1.isHidden = false
    } else {
        cell.pokemon4.isHidden = true
    }
    if Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p5.name != 0 {
        cell.pokemon5.image = UIImage(named: "\(Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p5.name)")
        cell.pokemon1.isHidden = false
    } else {
        cell.pokemon5.isHidden = true
    }
    if Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p6.name != 0 {
        cell.pokemon6.image = UIImage(named: "\(Player.User.Gold.trainers[(indexPath as NSIndexPath).row].p6.name)")
        cell.pokemon1.isHidden = false
    } else {
        cell.pokemon6.isHidden = true
    }

    return cell
}

(该函数只是检查数组的值是否为 0,如果不是则显示图像)

最佳答案

就像评论说的那样,问题是每个 if 中 pokemon1 的明显设置错误。

编辑

好吧,因为反对票,我会更精确: 在每个 if 条件下,您都将 pokemon1 设置为可见。您需要使用您设置为图像的 Pokomen。

享受编码的乐趣

关于ios - 滚动时 Swift 3 自定义单元格更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39766820/

相关文章:

ios - 自定义 ViewController 过渡

iOS 状态栏背景与 UIAlertController 重叠

ios - UITableview 在 didselectrow 上的滚动位置

iphone - 标题和栏按钮未显示在导航栏中

iphone - 在 XCode 4.6 下针对 iOS 4.x 设备

ios - 多个 UICollectionView

ios - 它不允许我创建导出

xcode - 使用 Swift 列出 iTunes 共享文件夹中的文件

ios - 如何在 Xcode 6.4 中创建 .dsym 文件

ios - Swift:创建字典值数组