2013-12-17 35 views
0

我无法重新排列tableView中的行。该表是在编辑模式下,所有的相关方法都覆盖,以返回YES重新排列UITableView行 - fromIndexPath和toIndexPath相同

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
    return YES; 
} 

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { 
    return YES; 
} 

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { 
    NSLog(@"From: %d to: %d", fromIndexPath.row, toIndexPath.row); 
    // some code to modify the dataSource 
    // ... 
} 

什么情况是,虽然重新安排控制是表示,如果我试图拖动它,它只能移动一行一点点,然后moveRowAtIndexPath:toIndexPath:被调用,并且fromIndexPathtoIndexPath都是一样的!

经过进一步检查,似乎有时我会设法将行向上或向下滑动以使其实际上可以正常工作,但一次只能移动一行。

我有另一个应用程序,我可以缓慢而轻松地重新排列行,但在这里,一旦我开始拖动,它似乎想在一秒钟后提交更改,所以如果我没有移动它足够远,它只是跳回到原来的行。是什么造成的?

+0

您需要在此处显示更多代码... tableView安装程序/您的dataSource更改..如果您有一个空的清洁项目拖动工作得很好。 – calimarkus

回答

0

经过仔细考虑,我意识到这个问题是由于应用程序的UI层,而不是tableView配置。罪魁祸首是我添加到应用程序的侧边菜单模块,默认情况下,该应用程序会添加一个UIGestureRecognizer来检测用户何时滑动屏幕以显示侧面的菜单。它干扰tableView的默认手势识别器,一旦禁用,一切正常。当使用第三方库时,请注意这些不良的副作用:)