如何重置NSTimer的触摸,触摸移动在iOS

我正在努力的应用程序,我必须在3秒后隐藏控制button,所以我写代码使用NSTimer和触摸开始,它的工作,但问题是,当我再次触摸任何另一个button比我的计时器不重置,即使我移动我的触摸示例,如拖动。

如果我拖动或移动触摸它应该重置计时器,但它不会。

我发现这个实现工作,如果我不断触摸其他领域(但它不是在控制button上工作)如果我不断触摸控制button仍然隐藏3秒后如何解决这个问题。 我希望事件发生在button点击也。

编辑我解决了我自己的问题..我已经添加此代码button点击部门,它的工作原理..

感谢您的支持

if(screenTimer) { [screenTimer invalidate]; screenTimer = nil; screenTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(turnOffScreen) userInfo:nil repeats:NO]; } 

这是我的代码

 // Touch began for touch event. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { if(screenTimer) { [screenTimer invalidate]; screenTimer = nil; } mode1View.hidden=NO; screenTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(turnOffScreen) userInfo:nil repeats:NO]; } - (void)turnOffScreen{ NSLog(@"TURN OFF SCREEN"); if(screenTimer!=nil) { mode1View.hidden=YES; } } 

任何帮助表示赞赏。 谢谢

你有没有尝试过

 [self performSelector:@selector(turnOffScreen:) withObject:nil afterDelay:3.0]; 

NSObject方法performSelector:withObject:afterDelay:在一定的延迟之后,它用一个对象调用一个方法。