当UITableView滚动返回错误的IndexPath.Row值时

时间:2015-12-30 13:18:43

标签: ios swift uitableview scroll custom-cell

这是我的代码;

    // MARK: - Table View Delegate && Data Source Methods
    // **************************************************

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let index = indexPath.row
    print(index)

    if index == 0 {
        let cell = tableView.dequeueReusableCellWithIdentifier("HeaderCell", forIndexPath: indexPath)

        cell.backgroundColor = ColorHelper.getCellBackgroundColor()

        return cell
    }
    else {
        if let cell = tableView.dequeueReusableCellWithIdentifier("GradeCell", forIndexPath: indexPath) as? GradeCell {
            cell.activeViewController = self;
            cell.gradeButton.tag = index
            cell.creditButton.tag = index
            cell.lessonNameTextField.tag = index
            cell.lessonNameTextField.delegate = self

            cell.backgroundColor = ColorHelper.getCellBackgroundColor()

            return cell
        }

        return UITableViewCell()
    }
}

我有11个单元格,有人丢失,当我滚动表视图索引返回时,这样;

0-1-2-3-4-5-6-7-8-0-1-2 ..

重新加载过程后,我的价值观混乱了。在错误的单元格中错误的价值,我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

您的问题可能是您要返回的细胞数量。特别是,如果您遇到最后一两个问题。根据你的说法,听起来你有11个细胞,确保你return 12。在您的情况下,UITableView中的单元格始终开始计数,其中0表示第一个单元格,10表示最后一个单元格。

func tableView(tableView: UITableView, numberOfRowsInSection section:Int) -> Int {

    return 12
}