2

ジェスチャ認識機能をビューに実装し、他のすべてのUIコンポーネントに伝播することはできますか?私はそのようなことをすれば 、それは動作しません:すべてのビューコンポーネントにジェスチャ認識ツールを適用しますか?

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)]; 
    swipe.direction = UISwipeGestureRecognizerDirectionRight; 

    [self.view addGestureRecognizer:swipe]; 
    [TitleLabel addGestureRecognizer:swipe]; 
    [DescLabel addGestureRecognizer:swipe]; 
    [_TopView addGestureRecognizer:swipe]; 
    [_BottomView addGestureRecognizer:swipe]; 
    [_ScrollView addGestureRecognizer:swipe]; 
    [_TableView addGestureRecognizer:swipe]; 

    [swipe release]; 

私はそれをどのように行うことができますか?

すべてのオブジェクトをカバーする透過ビューをビューに追加する必要がありますか? これを行うにはインテリジェントな方法がありますか?オブジェクトのいずれかを使用すると、認識器を適用したい場合、私はforsee唯一の問題がある

NSInteger count = 1; 
NSInteger total = [[self.view subviews] count]; 
for (id obj in [self.view subviews]) 
{ 
    NSLog(@"testing object %i of %i", count, total); 
    count++; 

    if ([obj respondsToSelector:@selector(addGestureRecognizer:)]) 
    { 
     UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)]; 
     swipe.direction = UISwipeGestureRecognizerDirectionRight; 
     [obj addGestureRecognizer: swipe]; 
     [swipe release]; 
     NSLog(@"swipe added"); 
    } 
} 

...複数のコンポーネントに同じ認識装置、しかし、完全を期すために:

答えて

0

あなたの調査結果は正しい再しています〜は、すでにサブビューであるより多くのビュー内に埋め込まれています(self.view)。 self.viewの見つかったサブビューがクラスタイプUIViewであるかどうかを確認し、そのビューのサブビューなどを繰り返していた場合は、

+0

はい、そうです。 – elp

関連する問題