2012-03-01 48 views
4

如何启动长按检测后动?使用uilongpressgesturerecognizer进行长时间点击检测。 我的代码:的UITableView重新排序像清除应用

`- (void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 
    flMoveRow = NO; 
    [self setEditing:YES animated:YES]; 
    [listView reloadData]; 
} 


- (void)longTapGesture:(UILongPressGestureRecognizer *)sender{ 
    if((sender.state != UIGestureRecognizerStateEnded)&&(!flMoveRow)){ 
     NSLog(@"==longTapGesture:"); 
     flMoveRow = YES; 
     [listView beginUpdates]; 
     NSArray *indexPaths = [[NSArray alloc] initWithObjects:indexPath, nil]; 
     [listView reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone]; 
     [listView endUpdates]; 
     sender.enabled = NO; 
    return;  
} 

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{ 
    NSLog(@"==canMoveRowAtIndexPath:%i -- %d", indexPath.row, (int)flMoveRow); 
return flMoveRow;}` 

打破触摸。谢谢。

回答

19

上有cocoacontrols.com可以控制它模仿清除应用。它显然还在工作,但是当我下载它时,它仍然非常令人印象深刻。您可以将其完全纳入到您的应用中,或者将其用作您自己的研究的起点。

link

+0

谢谢!谢谢!谢谢! – icocoadev 2012-03-01 14:52:25

+0

如果有帮助,那么如果你接受了答案并且/或者给我打了个电话,那就太好了!有一两件事是肯定SO真实,那就是如果你有一个低的接受率有些人推迟花时间制订一个为你解答: -/ – Damo 2012-03-01 15:21:44

10

,除非你想抛出一起从头开始自己的UITableView +控制器,它要求工作体面的数额不能跟iOS SDK工具做到这一点。我的自定义UITableView类可以为你处理。 JTGestureBasedTableViewDemo的作品,但有很多其他代码是不必要的,如果你只是想重新排序功能。随时查看我的版本:

https://github.com/bvogelzang/BVReorderTableView

+0

好家伙,这真是太好了!我将把它添加到我的所有应用程序中!谢谢。 – Devfly 2013-03-15 13:14:33

+0

伟大的工作#bvogelzang!非常感谢:) – Pria 2013-10-04 07:02:33

+0

谢谢bvogelzang。我正在处理您的代码并使其在旋转(水平)表上工作。 准备好了吗? – Abhijit 2014-01-30 14:54:41

相关问题