TableView行意外重新排序

时间:2014-11-19 13:54:47

标签: ios swift uitableview

我遇到问题,UITableView在行返回屏幕时没有保留行顺序。

向下/向上滚动后,订单全部搞砸了。索引1的行可以在第5行的位置,依此类推。如何保持行位置不变?

internal func tableView( tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath ) -> UITableViewCell {
    var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier( "cell" ) as? UITableViewCell

    if cell == nil {
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell" )

        // Set the cell's label
        cell?.textLabel?.text = "Cell: \(indexPath.row)"
    }

    // Return the cell
    return cell!
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您只是在创建单元格时设置文本(当dequeueReusableCellWithIdentifier返回nil时)。每次创建或重用单元格时都应设置/更改文本:

internal func tableView( tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath ) -> UITableViewCell {
    var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier( "cell" ) as? UITableViewCell

    if cell == nil {
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell" )
    }

    // Set the cell's label
    cell?.textLabel?.text = "Cell: \(indexPath.row)"

    // Return the cell
    return cell!
}