2013-03-13 254 views
1

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

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

我发现这个实现的工作,如果我继续在其他区域触摸(但不工作的控制按钮),如果我连续触摸控制按钮仍然不言而喻后3 second.How隐藏,以解决这个问题。我希望事件发生在按钮点击也。

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; 
} 
} 

任何帮助表示赞赏。谢谢

回答

0

你试过

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

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

+0

我会尝试执行选择器..但我发现问题,如果我点击我的控制按钮,而不是调用触摸开始的方法。 – 2013-03-13 11:30:56

+0

当你使用计时器right..let我知道使用performselector – BhushanVU 2013-03-13 11:33:07

+0

我解决这个问题,通过添加如果条件按钮点击部门和重置计时器从那里..感谢您的帮助。我只是想问你,哪一个是有效performsector或NSTimer – 2013-03-13 11:38:48