1

UICollectionViewセル付きです。セルのサブビューをタップすると追加されます。

すべてが機能しますが... 2 回目または 3 回目をすばやくタップすると、2 つまたは 3 つのサブビューが追加されます...

では、それを適切に行うにはどうすればよいでしょうか。

これはのコードですdidSelectItemAtIndexPath:

recipeDetailView = [[RecipeDetailViewController alloc] initWithNibName:@"RecipeDetailViewController" bundle:nil];

[recipeDetailView.view setBackgroundColor: [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgRecipe.jpg"]]];
[recipeDetailView.view setFrame: myFrame];

[UIView animateWithDuration:0.3
                      delay:0.0
                    options: UIViewAnimationOptionCurveLinear
                 animations:^{
                     [recipeDetailView.view setFrame: CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
                     [self.view addSubview:recipeDetailView.view];
                     [self addChildViewController:recipeDetailView];
                     [recipeDetailView didMoveToParentViewController:self];
                 }
                 completion:^(BOOL finished){
                     [recipeDetailView slideViewAdd];
                 }];
4

2 に答える 2

0

タップが検出された後、ユーザーの操作を短時間無効にします。

または、ジェスチャ レコグナイザーを使用してタップを検出し、別のジェスチャ レコグナイザーを使用して複数のタップを検出し、シングル タップ レコグナイザーが起動する前にマルチタップ レコグナイザーが失敗することを要求します。

于 2013-06-28T06:46:55.393 に答える
0

これdidSelectItemAtIndexPathにすべてのコードを追加するだけです。

 if(recipeDetailView ==  nil)
 {

  //copy all your codes from above question.

 }

ビューを削除するときは、recipeDetailView を nil に設定します。

 recipeDetailView = nil;
于 2013-06-28T06:48:51.047 に答える