UITableViewを長押しする 質問する

UITableViewを長押しする 質問する

UITableViewCellを長押しして「クイック アクセス メニュー」を印刷できるようにしたいのですが、すでに誰かがこれを実行していますか?

特にジェスチャーは認識しますかUITableView?

ベストアンサー1

まず、長押しジェスチャ認識機能をテーブル ビューに追加します。

UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] 
  initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 2.0; //seconds
lpgr.delegate = self;
[self.myTableView addGestureRecognizer:lpgr];
[lpgr release];

次に、ジェスチャ ハンドラーで次の操作を実行します。

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
{
    CGPoint p = [gestureRecognizer locationInView:self.myTableView];

    NSIndexPath *indexPath = [self.myTableView indexPathForRowAtPoint:p];
    if (indexPath == nil) {
        NSLog(@"long press on table view but not on a row");
    } else if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
        NSLog(@"long press on table view at row %ld", indexPath.row);
    } else {
        NSLog(@"gestureRecognizer.state = %ld", gestureRecognizer.state);
    }
}

ユーザーがセルを通常タップする動作を妨げないように注意する必要があります。またhandleLongPress、ジェスチャ認識機能の状態が変化するため、複数回実行される可能性があることにも注意してください。

おすすめ記事