特定の場所のタブを検出するために、テーブルビューに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秒間押し続ける必要があるようですが、これはタップジェスチャと関係がありますか?(削除すると、すべて正常に動作します)
したがって、ここでは緑色の領域をクリックできます。