実際には、2つのジェスチャーである「X」を認識できません。以前のものが斜めのストロークであるかどうか、そしてこれが1つの場合...そしてすべての種類の狂気であるかどうかを確認するには、ある種のジェスチャーセーバーを行う必要があります。あなたは、斜めに、まっすぐに、次に斜めに他の方向に向かって、何かをすることができます。あなたにそのコードを残してください:P
しかし、あなたがしたいのは、UIGestureRecognizerのサブクラスです。 Here is some documentation on it。
- (void)reset;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
"V"ジェスチャを認識するためのコードです。次のメソッドを実装する必要があります。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesMoved:touches withEvent:event];
if ([self state] == UIGestureRecognizerStateFailed)
return;
CGPoint curr = [[touches anyObject] locationInView:self.view];
CGPoint prev = [[touches anyObject] previousLocationInView:self.view];
if (!strokeUp) {
// upstroke has increasing x value but decreasing y value
if (curr.x >= prev.x && curr.y <= prev.y) {
strokeUp = YES;
} else {
[self state] = UIGestureRecognizerStateFailed;
}
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
if (([self state] == UIGestureRecognizerStatePossible) && strokeUp) {
[self state] = UIGestureRecognizerStateRecognized;
}
}
これは正しい方向、幸運を指しているはずです。
iOSは描画のようなランダムなジェスチャをサポートしていない可能性があります。利用できるジェスチャーのほとんどは、明確なスワイプ、タップ、ターンです。 iOS 5には、Assistive Touchと呼ばれるものがあるように思われます。これは、後でカスタム描画スタイルのジェスチャーをオーバーロードする能力を示す可能性があります。 –