我遇到问题,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!
}
我做错了什么?
答案 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!
}