2011-06-24 7 views
0

私は作成しているWebviewにUITapGestureRecognizerを付けて、ユーザがWebviewをタップしたときにそのビューを削除しようとしています。以下は私のサンプルコードです。何が間違っているのですか?ありがとう!タップイベントをuiwebviewに添付するにはどうすればよいですか?

- (void) setupPuzzle1 
{ 
puzzleDuration--; 
//Create object circle 
UIImageView *circleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"red-circle.png"] highlightedImage:[UIImage imageNamed:@"red-circle.png"]]; 

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(removeImage:)]; 
recognizer.numberOfTapsRequired = 1; 
recognizer.numberOfTouchesRequired = 1; 
recognizer.delegate = self; 

[circleView addGestureRecognizer:recognizer]; 

[recognizer release]; 

int x = rand()%280; 
int y = rand()%420; 

circleView.frame = CGRectMake(x,y,40,40); 
[self.view addSubview:circleView]; 

if (puzzleDuration > 0) 
{ 
    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(setupPuzzle1) userInfo:nil repeats:NO]; 
} 

} 



#pragma mark - UITapGestureRecognizer methods 


- (void)removeImage:(UITapGestureRecognizer *)recognizer 
{ 
NSLog(@"Remove Image"); 
[[recognizer view] removeFromSuperview]; 
} 

@end

+0

開始するには、このコードで何が動作するかどうかを教えてください。 – PengOne

+2

あなたの質問はあなたのコードと一致しません - あなたはWebビューまたは画像ビューにコードを追加しますか? – Caleb

答えて

3

私はあなたがすべてでおよそUIWebViewを話していなかったと思います。あなたがした場合、あなたのコードはそれを反映しませんでした。したがって、あなたはUIImageViewを扱っています。その理由は、デフォルトでUIImageViewオブジェクトはuserInteractionEnabledNOに設定されているため、かなり簡単です。それをYESに変更する必要があります。したがって、この行を追加してください。

circleView.userInteractionEnabled = YES; 

また、あなたはそれを解放していません。したがって、サブビューとして追加した後に

[circleView release]; 

を追加してください。

関連する問題