1

我的视图上有一个点击手势,我只希望能够在某个点之后和不同的功能运行之后触发。我的解决方案是为点击手势创建一个插座,然后根据需要调用功能Enabled设置。代码如下所示,第二个功能是点击手势TRUEFALSE

- (IBAction)butt:(id)sender
{
    if(game == FALSE)
    {
        tapges.enabled = FALSE;
        int sec;
        sec = arc4random() % 5;
        if(sec == 0){sec++;}
        sleep(sec);
        tapges.enabled = TRUE;
        game = TRUE;
        gun.hidden = FALSE;
        start = [[NSDate date] timeIntervalSince1970];
    }



}


- (IBAction)tap:(id)sender
{
    if(game == TRUE)
    {
        end = [[NSDate date] timeIntervalSince1970];
        double total = end - start;
        NSString *myString = [NSString stringWithFormat:@"%lf", total];
        ss.text = myString;
        game = FALSE;
        gun.hidden = TRUE;
        tapges.enabled = FALSE;
    }
}

但是,它似乎不起作用。即使在第一个功能设置后,tapges.enabled = FALSE如果您在它到达之前点击tapges.enabled = TRUE它仍然只是在对接功能运行后将点击功能排队运行。

4

1 回答 1

1

有一种方法可以通过使用UIGestureRecognizerDelegate方法来防止 UIGestureRecognizer 触发(或在触发之前调用另一个函数),gestureRecognizerShouldBegin但我认为问题更多是逻辑问题。

不确定我是否完全理解您的任务,但不会更简单,例如:

- (IBAction)butt:(id)sender
{
    if(game == FALSE)
    {
     [self callOtherMethod];
    }
}

或者

- (IBAction)butt:(id)sender
{
    if(game == FALSE)
    {
     //do set up
    } else {
     // do other setup
    }
}
于 2012-09-04T19:37:33.707 回答