我有一个UIButton
,用户必须在三秒钟内单击5次,我试图为此实现一种方法,但是如果用户连续3秒钟单击按钮5次,则会获得正确的结果,如果例如,用户单击一次并停止2秒钟,则计数器会在计算中进行第一次点击。
简而言之,我需要一种方法来检测最近的五次点击,并知道这些点击是否在三秒钟之内...
这是我的旧代码:
-(void)btnClicked{
counter++;
if (totalTime <=3 && counter==5) {
NSLog(@"My action");
// My action
}}
我知道我的代码太简单了,所以为什么我问你亲
最佳答案
尝试适当地更改此示例:
// somewhere in the initialization - counter is an int, timedOut is a BOOL
counter = 0;
timedOut = NO;
- (void)buttonClicked:(UIButton *)btn
{
if ((++counter >= 5) && !timedOut) {
NSLog(@"User clicked button 5 times within 3 secs");
// for nitpickers
timedOut = NO;
counter = 0;
}
}
// ...
[NSTimer scheduledTimerWithTimeInterval:3.0
target:self
selector:@selector(timedOut)
userInfo:nil
repeats:NO
];
- (void)timedOut
{
timedOut = YES;
}