2012-04-12 5 views
2

私のアプリケーションでは、ランダムに動いている3つのuiimageviewがあります。それは隠れるはずです。しかし、私のタップジェスチャーは機能しません。シングルタップでは隠れていません。タップジェスチャーはUIimageviewで動作していません

- (void)showAlert1:(UITapGestureRecognizer *)sender 
{ 
    if (image1.tag == 1) 
    { 
     image1.hidden = TRUE; 
    } 
    else 
    { 
     image1.hidden = FALSE; 
    } 
} 

- (void)showAlert2:(UITapGestureRecognizer *)sender 
{ 
    if (image1.hidden == TRUE && image3.hidden == FALSE) 
    { 
     image2.hidden = TRUE; 
    } 
    else 
    { 
     image2.hidden = FALSE; 
    } 
} 

- (void)showAlert3:(UITapGestureRecognizer *)sender 
{ 
    if (image1.hidden == TRUE && image2.hidden == TRUE) 
    { 
     image3.hidden = TRUE; 
    } 
    else 
    { 
     image3.hidden = FALSE; 
    } 
} 

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    if (image1.tag == 1) 
    { 
     image1.userInteractionEnabled = YES; 

     UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(imageAlerts]; 
     tap.numberOfTapsRequired = 1; 
     [image1 addGestureRecognizer:tap]; 
    } 

    if (image2.tag == 2) 
    { 
     image2.userInteractionEnabled = YES; 

     UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert2]; 
     tap.numberOfTapsRequired = 1; 
     [image2 addGestureRecognizer:tap]; 
    } 

    if (image3.tag == 3) 
    { 
     image3.userInteractionEnabled = YES; 

     UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert3]; 
     tap.numberOfTapsRequired = 1; 
     [image3 addGestureRecognizer:tap]; 
    } 
} 

誰でも手伝ってもらえますか?事前に

おかげ

答えて

0

にXIB

または

image.userInteractionEnabled = YES; 
image.multipleTouchEnabled = YES; 

に画像を追加した場合、私はしませんでした。この

- (void)showAlert1:(UITapGestureRecognizer *)sender 
{  
    if (sender.state == UIGestureRecognizerStateEnded)  
    {   
    // your handling code 
    if (image1.tag==1) 
     image1.hidden=TRUE; 
    else 
     image1.hidden=FALSE;  
    } 
} 
+0

- (void)showAlert1:(UITapGestureRecognizer *)送信者。これは私が画像に触れるときに呼び出されることはありません。 – Priya

+0

viewWillAppearに何らかの問題があることを意味します。 私はiOSPawanの答えで言ったように、image.tagのプロパティチェックに何らかの問題があるはずです。 –

+0

使用条件を確認するには if(self.view == image1) –

0

あなたがUIGestureRecognizerDelegateを実装し、自己に設定されていましたか?

+0

何をしてみませんXIBファイル内userInteractionEnabledmultipleTouchをチェックマークしてください実装済み – Priya

+0

それを実装した後も – Priya

+0

間違ったタップジェスチャーセレクターを設定しているようですね。 – iOSPawan

0

はこれを試す -

- (void)viewWillAppearBOOL:animated 
{ 

[super viewWillAppear:animated]; 

if (image1.tag==1) 

{ 

image1.userInteractionEnabled = YES; 

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert1:]; 

tap.numberOfTapsRequired = 1; 

[image1 addGestureRecognizer:tap]; 

} 

if (image2.tag==2) 

{ 

image2.userInteractionEnabled = YES; 

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert2:]; 

tap.numberOfTapsRequired = 1; 

[image2 addGestureRecognizer:tap]; 

} 
if (image3.tag==3) 

{ 

image3.userInteractionEnabled = YES; 

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert3:]; 

tap.numberOfTapsRequired = 1; 

[image3 addGestureRecognizer:tap]; 

} 
} 

また、それはメモリリークが発生しています。 UIGestureはイメージに追加された後に解放されません。

+0

私は同じ権利をしましたか? – Priya

+1

いいえあなたがimageAlerts、showAlert2、showAlert3に設定するタップジェスチャーを作成している間は、それはshowAlert1:、showAlert2:showAlert3: – iOSPawan

+1

でなければなりません。すべての画像に別個の参照があるためです。 – iOSPawan

22

あなたがのviewDidLoad

+0

いいえ動作しませんでした – Priya

+1

私のために働きました。 –

+1

ブームが完了しました。これは私のためのトリックでした。 –

関連する問題