1

スワイプでアニメーションを削除

AnyDo アプリのように、スワイプでテーブル ビュー セルの削除を実装しようとしています。助けて?

私のコード:

ジェスチャ認識機能を使用しています

      - (UISwipeGestureRecognizer *)swipeRightRecognizer 
      { 
        if (!_swipeRightRecognizer)  
           {
            _swipeRightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
            _swipeRightRecognizer.direction = UISwipeGestureRecognizerDirectionRight; 
       }  

        return _swipeRightRecognizer; 
       }

ジェスチャをセルに追加:

       [cell.contentView addGestureRecognizer:self.leftGestureRecognizer];

スワイプ処理。

       - (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer indexPath: (NSIndexPath *)index
       { 
       if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft)
       { 
        //Table View deletion code.  + Line to be drawn on cell, move that cell to the bottom of the table with animaiton.
       } 

}

4

2 に答える 2

3

UISwipeGestureRecognizerを使用できます。

UISwipeGestureRecognizer *gRec = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSelector:)];
[gRec setDirection:(UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionUp)];

[yourCell addGestureRecognizer:gRec];

yourSelector メソッドでは、スワイプを処理できます。

- (void)yourSelector:(id)sender {
    NSLog(@"Handle swipe");
    UISwipeGestureRecognizer *gRec = sender;
    UITableViewCell *cell = [gRec view];

    UIImageView *line = [[UIImageView alloc] initWithFrame:CGRectMake(x,y,0,0)];
    [line setImage:[UIImage imageNamed:@"line.png"]];
    [UIView animateWithDuration:0.3 animation:^ (void) {
        [cell addSubview:line];
        [line setFrame:CGRectMake(x,y,320,5];
    } completion:nil];
}

編集:行のコードを追加しましたが、今は試すことができません。ただし、動作するはずです

于 2013-02-22T10:50:06.923 に答える
3

Colin Eberhardt は、 How to Make a Gesture-Driven To-Do List App Like Clearに関する優れたチュートリアルを書きました。スワイプ削除機能も実装。

于 2013-02-22T10:58:48.313 に答える