ジェスチャのキャプチャについて話している場合は、ドキュメントに示されている例を次に示します。
アラン・カニストラロが最初のCS193P講義の1つで、これを行う必要はなく、スワイプイベントをトラップするだけでよいと言っているのを聞いたと誓ったかもしれませんが、それは見つかりません。
彼らが何をしているのかを実際に知っている誰かが私を訂正してくれませんか?私はこの投稿を削除しますが、今のところ私はこれがうまくいくことを知っています:
#define HORIZ_SWIPE_DRAG_MIN 12
#define VERT_SWIPE_DRAG_MAX 4
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
startTouchPosition = [touch locationInView:self];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self];
// If the swipe tracks correctly.
if (fabsf(startTouchPosition.x - currentTouchPosition.x) >= HORIZ_SWIPE_DRAG_MIN &&
fabsf(startTouchPosition.y - currentTouchPosition.y) <= VERT_SWIPE_DRAG_MAX)
{
// It appears to be a swipe.
if (startTouchPosition.x < currentTouchPosition.x)
[self myProcessRightSwipe:touches withEvent:event];
else
[self myProcessLeftSwipe:touches withEvent:event];
}
else
{
// Process a non-swipe event.
}
}