防止moveRowAtIndexPath超出固定索引

时间:2015-07-20 13:30:05

标签: ios xcode swift uitableview

我有一个UITableViewController显示动态表数据,最后有一行(使用单独的单元格原型),其中包含一个“添加”按钮。

我希望用户能够重新排序表格行,但是阻止他们在最后一行之后将行移动到点。

我已实施:

override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {

    return indexPath.row != elements.count

}

阻止用户移动“添加”表格行

我正在测试

    if(toIndexPath.row < library.regularTasks.count)

里面

override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath)

可防止在模型中交换行

但是,我看不到一种方法来阻止行被拖动到UI中的最后一行

1 个答案:

答案 0 :(得分:2)

发现它!

我用过:

override func tableView(tableView: UITableView, targetIndexPathForMoveFromRowAtIndexPath sourceIndexPath: NSIndexPath, toProposedIndexPath proposedDestinationIndexPath: NSIndexPath) -> NSIndexPath {  
// Test whether destination is allowed    
if(proposedDestinationIndexPath.row < elements.count){
      return proposedDestinationIndexPath // if allowed move to proposed destination
    }else{
        return sourceIndexPath // if not, send back to where it came from!
    } 
}