2011-10-18 21 views
2

NSTimerを使用して回転バナーを構築し、現在のイメージを追跡し、5つのイメージからアニメートされたイメージを追跡します。誰かがクリックすると、バナーにtouchイベントを処理し続けるtouchesBeganが設定されています。私の概念実証は機能しますが、それを別のプロジェクトに移すと破綻します。それはそのイメージを検出しませんタッチしているものがタッチされていません

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
UITouch *touch = [[event allTouches] anyObject]; 
if ([touch view] == myImageView){ 
    [self getImage]; 
    NSLog(@"%@", currentImage); 
} 
} 

今、私は私のプロジェクトにブレークポイントを置いたときに、それがうまくタッチをつかむが、あれば、それは になったとき([タッチビュー] == myImageView) ビューに触れている。

+0

、私は忘れてしまった:

その後

UITouch *touch = [[event allTouches] anyObject]; 

touchesBeganメソッドは以下のように見えるように

UITouch *touch = [touches anyObject]; 

に変更myImageView.userInteractionEnabled = YES;しかし、私たちのメインプロジェクトでは、これはあまりうまくいきません。 –

答えて

7

UIGestureRecognizerを使用してみましたが、何が原因か分かりませんか?以下のようなコードを試して、メソッドが呼び出されたかどうかを確認してください。

//Add Gesture Recognizer 
    UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageSelected)]; 
    tapped.numberOfTapsRequired = 1; 
    [theImageView addGestureRecognizer:tapped]; 

    //Memory Cleanup 
    [tapped release]; 

-(void)imageSelected 
    { 
    NSLog(@"Selected an Image"); 
    } 
+0

私はこれを試したところ、私は画像に触れたことさえ登録していません。私はそれに戻って考えていましたが、コンセプトの証明は私が新しいxcodeに更新する前に終了しました。まだiOS 4で動作しています。今では概念の証明は機能していません。 iOS 5で問題になることはありますか? –

+0

POCを試してまだ動作していないかどうかを確認する新しいプロジェクトを作成することは可能です。 – aahrens

+0

私はやったが、何かが働いていない。これは本当に面倒です。 –

3

あなたは以下のようなあなたのviewDidLoadメソッドにYESにuserInteractionEnabledを設定する必要がまず第一に:myImageViewため、アイデンティティインスペクタを経由して有効なユーザーインタラクションをチェックすることが私のために働かなかったことを

[myImageView setUserInteractionEnabled:YES]; 

は注意。私はそれを再構築し、これを使用して動作するようにそれを持っている

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    if ([touch view] == myImageView) { 
     // place any code here when myImageView is touched 
    } 
} 
+0

最初の行は私に多くの時間を節約しました。ありがとう。 – Deco