0

我在互联网上看过很多教程来检测 iPhone 中的打击,但我的应用程序的要求是我需要同时检测单次打击和双次打击,以便如果用户单次打击它可以执行动作 a,如果用户一起打击两次然后执行动作 b.

有什么办法可以做到这一点?

谢谢大家,

4

1 回答 1

2

当然,如果您知道如何检测单次打击,您可以设置一个带有阈值的计时器并查看在这段时间内是否发生了另一次打击?就像是 -

-(void)userDidBlow {

    if (hasBlownOnce) {

        hasBlownOnce = NO;
        [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleBlowTimedOut) object:nil];

        // do double-blow stuff

    } else {

        hasBlownOnce = YES;

        [self performSelector:@selector(singleBlowTimedOut) withObject:nil afterDelay:kDoubleBlowTime];

    }

}


-(void)singleBlowTimedOut {

    hasBlownOnce = NO;

    // do single-blow stuff

}

我还没有测试它,但它看起来不错:)

于 2012-04-11T14:50:57.450 回答