在TableView的特定单元格中重新排序块

问题描述:

我想阻止要重新排序的单元格。在TableView的特定单元格中重新排序块

例如:

我有4行的实现代码如下,但不希望是第一个单元格可以重新排序。

这可能吗?

我试着使用:

if(indexPath.row == 0) 
{ 
    [cell setEditing:NO animated:NO]; 
} 

但不起作用。

谢谢。

我找到了答案!

您可以使用来自UITableViewDelegate的方法targetIndexPathForMoveFromRowAtIndexPath

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

}

你UITableViewDataSource应该实现-(BOOL)tableView:canMoveRowAtIndexPath:并返回NO的indexPath.row == 0

- (BOOL)tableView:canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return (indexPath.row != 0); 
} 

UITableViewDataSource documentation

+0

我已经试过了...但没有工作... – 2013-02-27 17:32:57

+0

即细胞无法重新排序,但是当你在编辑按钮单击重新排序其他细胞,它改变了位置也是......我希望它是静态的。 – 2013-02-27 17:36:09