如何防止UITableViewCell移动到特定索引

时间:2014-10-14 14:08:13

标签: ios uitableview

在我的应用程序中,用户可以使用编辑按钮移动UITableViewCell行并拖放。

我不希望用户能够将单元格移动到第0行。我已经将此工作用于NSMutableArray,如果行为0,则不要重新排列集合中的对象。但即使这样,可见表仍然显示第0行的单元格。

如何以图形方式阻止这种情况?

我尝试了以下内容:

-(NSIndexPath*)tableView:(UITableView*)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath*)sourceIndexPath toProposedIndexPath:(NSIndexPath*)proposedDestinationIndexPath
{
        if(proposedDestinationIndexPath.row == 0)
        {
            return 1;
        }

        return proposedDestinationIndexPath;
}

但是当我尝试将第1行的单元格移动到第0行时,它会因EXC_BAD_ACCESS错误而崩溃。

1 个答案:

答案 0 :(得分:3)

你的方法是正确的。问题是tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath方法应该返回NSIndexPath*,但是返回一个整数。修复很简单:

if(proposedDestinationIndexPath.row == 0)
{
    return [NSIndexPath indexPathForRow:1 inSection: proposedDestinationIndexPath.section];
}