2013-03-13 68 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