UITableView:在编辑模式下移动行

时间:2010-11-20 08:17:48

标签: iphone

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {     NSUInteger row = [indexPath row];     if(row == 0)         返回NO;     返回YES; }

我的问题是:虽然我为第0行指定了NO。如果我尝试拖动第1行来替换第0行,动画就会让这种情况发生。问题是上述方法仅决定行右侧是否有移动图标。关于如何阻止第0行被取代的任何想法?

1 个答案:

答案 0 :(得分:4)

使用

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath

来自UITableViewDelegate

您可以这样做:

if ([proposedDestinationIndexPath row] > 0) {
    return proposedDestinationIndexPath;
}

NSIndexPath *betterIndexPath = [NSIndexPath indexPathForRow:1 inSection:0];
return betterIndexPath;

(来自Joe Conway和Aaron Hillegass的“iPhone编程”)