我正在开发一个应用程序,其中我必须在 3 秒后隐藏控制按钮,所以我使用 NSTimer 编写代码,然后开始触摸,它可以工作,但问题是,当我再次触摸任何其他按钮时,我的计时器不会重置,即使我像拖动一样移动我的触摸示例。
如果我拖动或移动触摸,它应该重置计时器,但它不会。
我发现,如果我连续触摸其他区域(但它不适用于控制按钮),如果我连续触摸控制按钮,该实现将在 3 秒后隐藏。如何解决此问题。我也希望事件在按钮单击时触发。
EDITED我自己解决我的问题..
我已在按钮点击部分添加了此代码并且它有效。
感谢大家的支持
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];
The NSObject
method performSelector:withObject:afterDelay:
它会在一定的延迟后调用对象上的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)