0

特定の場所のタブを検出するために、テーブルビューにUITabGestureRecognizerをアタッチしました。

- (void)cellTapped:(UITapGestureRecognizer *)gesture
{
    CGPoint tapLocation = [gesture locationInView:self.tableView];

    if(tapLocation.x > 95)
    {
        NSIndexPath *swipedIndexPath = [self.tableView indexPathForRowAtPoint:tapLocation];
        ItemCell *cell = (ItemCell *)[self.tableView cellForRowAtIndexPath:swipedIndexPath];

        [cell toggleCell:YES fromTap:YES];
     }

}

ここでは、タブのx位置を確認します。この位置が95を超える場合にのみ、toggleCell関数を実行する必要があります。そうでない場合は、ジェスチャをキャンセルする必要があります。

これは正常に機能しますが、セル内のボタンをクリックするのは非常に困難です。これらのボタンは、95xポイントから左側にあります。(したがって、場所を確認する理由)

ボタンが実際にクリックされる前に、ボタンを1秒間押し続ける必要があるようですが、これはタップジェスチャと関係がありますか?(削除すると、すべて正常に動作します)

したがって、ここでは緑色の領域をクリックできます。

ここに画像の説明を入力してください

4

1 に答える 1

0

解決策は、ジェスチャをセル自体に個別に添付し、さまざまな通知をリッスンすることでした。

于 2012-05-22T07:38:21.517 に答える