2012-03-20 11 views
2

スワイプアクションは、特別な領域でのみ捕捉する必要があります。しかし、デバッガは伝えるunrecognized selector sent to instanceスワイプ時のセレクタが認識されない

- (void)viewDidLoad 
{ 
    UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] 
      initWithTarget:self.viewName action:@selector(didSwipe:)]; 
    swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft; 
    [self.view addGestureRecognizer:swipeLeft]; 
} 

-(void)didSwipe:(UISwipeGestureRecognizer*)swipe{ 
    NSLog(@"swiped left"); 
} 

whats wrong?

答えて

3

おそらくターゲットがselfではなく、self.imageNameになるようにします。あなたのコメントを受けて


編集

UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] 
     initWithTarget:self action:@selector(didSwipe:)]; 
swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft; 
[self.viewName addGestureRecognizer:swipeLeft]; 

あなたのtargetをメソッドが存在する場所にします。この場合はselfである必要があります。あなたは、タッチされるべきであるビューにジェスチャ認識装置を追加したい、self.viewName

+0

まあ、それは実際には、すべての画面で動作します。そして、私がこの特別な場所で始まるときだけ、このジェスチャーをどのようにカッティングできますか? –

+0

そうではありません。スワイプがスモールエリア以外では動作しないようにする必要があります:) –

+0

特定の領域にある必要がある場合は、ジェスチャ認識機能を 'self.view'全体に追加しないでください。ユーザーにスワイプする場所の正しい場所にあるサブビューに追加してみてください。 – MishieMoo

6

ジェスチャ認識機能に引数があるため、@selector(didSwipe:)(コロンに注意してください)にする必要があります。

+0

私は両方の変種を試しました。同じ。 –

関連する問題