SO、オーバーレイ ビューにジェスチャ認識機能を追加しています。画面をタップすると、このオーバーレイが消えます。ジェスチャ レコグナイザーを追加すると、「内部のタッチアップ」やその他のボタン クリック イベントがオーバーライドされるとは言えます。これを元に戻す必要があるため、ジェスチャーレコグナイザーを削除する必要があります。この方法を使用できますが、問題があります。以下の私のコード -
- (void)helpClicked
{
CGRect visibleBounds = [self convertRect:[self bounds] toView:viewContainer];
CGFloat minimumVisibleX = CGRectGetMinX(visibleBounds);
UIImageView * helpOverlay = [[UIImageView alloc]initWithFrame:CGRectMake(minimumVisibleX, 0, 1024, 768)];
UIImage * helpImage = [UIImage imageNamed:@"HelpOverLay.png"];
[helpOverlay setImage:helpImage];
helpOverlay.tag = 50;
self.scrollEnabled = NO;
[self addSubview:helpOverlay];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissView)];
[self addGestureRecognizer:tap];
}
ここでは、オーバーレイを他のビューから外しています。
- (void) dismissView
{
UIView *overlay = [self viewWithTag:50];
[overlay removeFromSuperview];
self.scrollEnabled = YES;
}
私の質問は、2 番目の方法でジェスチャ認識エンジンを削除するにはどうすればよいですか? 変数タップをこのメソッドに渡すことも、前のメソッドで削除することもできません。ポインタはありますか?イベントに関しては、非常に多くの変数の問題に悩まされてきました。