1

UICollectionView细胞。通过点击应该添加单元格子视图。

一切正常,但是......如果我快速点击第二次或第三次,它会添加两个或三个子视图......

那么如何正确地做到这一点呢?

这是代码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 回答