2012-03-01 38 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には、Clearアプリを模倣したコントロールがあります。それはまだ明らかに作業中ですが、私がダウンロードしたとき、それはまだ非常に印象的でした。それをあなたのアプリに完全に組み込むことも、自分の研究の出発点として使うこともできます。

link

+0

ありがとうございました!ありがとうございました!ありがとうございました! – icocoadev

+0

それが役に立ったら、あなたが答えを受け入れるか、私に印をつけてくれればいいでしょう! 1つのことは間違いなくSOの真実であり、それはあなたが低い受け入れ率を持っている場合です。何人かの人々があなたのために答えを公式化する時間を過ごされています: -/ – Damo

10

iOS SDKツールでは、独自のUITableView +コントローラをまったく捨てる必要がない限り、それを行うことはできません。私のカスタムUITableViewクラスでこれを処理できます。 JTGestureBasedTableViewDemoは機能しますが、機能を並べ替えるだけの場合は不要な他の多くのコードがあります。私のバージョンをチェックアウトしてお気軽に:

https://github.com/bvogelzang/BVReorderTableView

+0

おい、これは本当に素晴らしいです!私はそれをすべてのアプリに追加しよう!ありがとう。 – Devfly

+0

すばらしい仕事#bvogelzang!ありがとうたくさん:) – Pria

+0

ありがとうbvogelzang。私はあなたのコードに取り組んで、回転(水平)テーブル上で動作させる。 準備ができていますか? – Abhijit