2

そのため、アプリケーションの画面上のサブビューの 1 つにスワイプ ジェスチャを追加しようとしています。ジェスチャ認識エンジンを次のように宣言します。

UISwipeGestureRecognizer *swiperR = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(switchStackingMode:)];
    [swiperR setDirection:UISwipeGestureRecognizerDirectionRight];
    [chart addGestureRecognizer:swiperR];

UISwipeGestureRecognizer *swiperL = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(switchStackingMode:)];
    [swiperL setDirection:UISwipeGestureRecognizerDirectionLeft];
    [chart addGestureRecognizer:swiperL];


-(void)switchStackingMode:(UISwipeGestureRecognizer *)sender {
    NSLog(@"inside switchstack from gesture");
    //other stuff
}

アプリケーションの起動時にサブビューを操作しようとすると、スワイプ ジェスチャ swiperL のみが機能します。右スワイプしても反応なし。私は最初、方向を指定して 1 つのジェスチャ認識エンジン (UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight) を実行しようとしましたが、それは機能せず、他のスタック オーバーフローの回答に基づいて、2 つの別個の認識エンジンに戻しました。まだ運がなく、これには困惑しています。私は何かが欠けているように感じます..

4

2 に答える 2

1

このコードは機能するはずです。デバイスを試していますか?スワイプ ジェスチャは、シミュレータで行うのはそれほど簡単ではありません。

左右両方が認識された状態で、1 つのジェスチャのみを実行できます。この方法は、左右または上下で機能しますが、すべての方向では機能しません。

于 2012-07-19T13:44:05.417 に答える
0

私はこれに答えました ここUISwipeGestureRecognizer の方向を設定します。バグは、「アクション」名を同じにすることができない、つまり「switchStackingMode」という名前の両方のセレクターを持たないことだと思います。switchStackingModeRight と switchStackingModeLeft を使用します。

于 2012-10-24T20:52:22.260 に答える