2012-10-13 4 views
8

gestureRecognizer:shouldReceiveTouch:メソッドが呼び出されていません。私はそれを正しく設定していませんか?gestureRecognizer:shouldReceiveTouch:呼び出されない

-(id) init 
{ 
UILongPressGestureRecognizer *touchHold = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleTouchHold:)]; 
touchHold.minimumPressDuration = 1.0f; 
touchHold.numberOfTouchesRequired = 1; 
[[CCDirector sharedDirector].openGLView addGestureRecognizer:touchHold]; 
} 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    return NO; 
} 

boolをnoに設定しても、押しているメソッドがまだ呼び出されています。

答えて

26

あなたはデリゲートを設定していないようですか?

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 

UIGestureRecognizerDelegateの一部です。だから、デリゲートを設定しておくべきです。

touchHold.delegate = self; 

編集: あなたはUIGestureRecognizerDelegateを実装するために、あなたのビューコントローラを教えてください。

@interface YourViewController <UIGestureRecognizerDelegate> 
+0

'互換性のない型から 'ID ' に割り当てる 'HelloWorldLayer *'' – iamruskie

+1

があなたの@interface YourViewController <...>私は '@interface YourViewController {IDた – ewiinnnnn

+0

ああにを持っていないような何か< UIGestureRecognizer>デリゲート;} 'と設定していた' touchHold.delegate = delegate; '助けてくれてありがとう。そこには1秒間混乱しました。 – iamruskie

関連する問題