の中で特定の1 UIGestureRecognizerを検索し、削除ねえ、みんな、ビューからremoveGestureRecognizer:
にしようとしたとき、私は、問題に会った私は何をしたいのかいくつかの同じ名前のUIGestureRecognizers
はimageView
秒のdoubleTap
一つであり、および削除しますimageView
のシングルタップジェスチャーをタップし、他のタップを削除しないでください。imageView
シングルタップジェスチャー。 .hの
UITapGestureRecognizer *singleTap;
.M
- (void)viewDidLoad
{
[super viewDidLoad];
NSInteger i;
for (i = 1; i <= 3; i++)
{
UIImageView *imageView = [[UIImageView alloc] init];
imageView.frame = CGRectMake(110, 70+80*(i-1), 100, 60);
imageView.backgroundColor = [UIColor whiteColor];
imageView.tag = i;
imageView.userInteractionEnabled = YES;
[self.view addSubview:imageView];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleMethod:)];
doubleTap.numberOfTapsRequired = 2;
singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleMethod:)];
[singleTap requireGestureRecognizerToFail:doubleTap];
[imageView addGestureRecognizer:doubleTap];
[imageView addGestureRecognizer:singleTap];
}
}
- (void)singleMethod: (id)sender
{
NSLog(@"SingleTap");
}
- (void)doubleMethod: (id)sender
{
NSLog(@"%d",[((UITapGestureRecognizer *)sender).view.gestureRecognizers count]);
UIImageView *imageView = nil;
NSArray *tryToFindYou = [self.view subviews];
for (imageView in tryToFindYou)
{
if ([imageView isKindOfClass:[UIImageView class]] && imageView.tag == ((UITapGestureRecognizer *)sender).view.tag)
{
[imageView removeGestureRecognizer:singleTap];
}
}
NSLog(@"%d",[((UITapGestureRecognizer *)sender).view.gestureRecognizers count]);
}
が、私が書いたこれらの行は、まさにsingleTapを見つけることができません。ここに
は私が望む、ジェスチャーやメカニズムを生成する方法でありますダブルタップされた画像ビューに付けられたジェスチャ。
NSLogが.gestureRecognizers count
の場合は、それでも2、削除されたのは最後のimageView
のシングルタップジェスチャーで、1になりました。
私は最初と2番目のものを見つけることができません、それらを見つけるためのアイデア?お読みいただきありがとうございました:)
。 'for(UIGestureRecognizer * [imageView gestureRecognizers]のジェスチャー){' – Jules
私は同意して応答を更新します。 –