1

ズームとは関係のないゲームの場合、ユーザーがピンチしていくつかの凝った部分を実行している間、タッチがどこにあるかを追跡する必要があります。ピンチは検出できますが、ピンチ中にタップの位置を見つけることができず、中点のみが見つかります(プライベート変数タッチを使用しても機能しません)。

理想的な結果は次のようになります(Box2DPinchRecognizerは私のUIPinchRecognizerサブクラスの名前です)。

Box2DPinchRecognizer *pinchRecognizer = [[Box2DPinchRecognizer alloc] initWithTarget:self action:@selector(pinchGesture:) withObject:(NSArray*)touches];

タッチする場所は、指がどこにあるかを示す2つのCGPointの配列です。

4

2 に答える 2

3

何もサブクラス化する必要はありません。UIGestureRecognizerアクションメソッドで現在のタッチの場所を尋ねることができるはずです。

- (void)pinchGesture:(UIGestureRecognizer *)recognizer
{
    NSUInteger numberOfTouches = recognizer.numberOfTouches;
    NSMutableArray *touchLocations = [NSMutableArray arrayWithCapacity:numberOfTouches];
    for (NSInteger touchIndex = 0; touchIndex < numberOfTouches; touchIndex++) {
        CGPoint location = [recognizer locationOfTouch:touchIndex inView:self.view];
        [touchLocations addObject:[NSValue valueWithCGPoint:location]];
    }
    ...
}


編集:
コードの最後に角括弧が追加されます。

于 2012-04-16T09:40:04.400 に答える
0

私のカスタムUIPinchGestureRecognizerの最初の部分は、両方のタッチの場所を提供します。多分それは助けることができます: https ://stackoverflow.com/a/17938469/1186235

于 2013-07-30T04:57:16.243 に答える