簡體   English   中英

timer.invalidate()在Swift中的同一視圖上不起作用

[英]timer.invalidate() not working on same view in Swift

我正在使用Swift開發使用計時器的應用程序,所以我將這段代碼用於計時器

var timer = NSTimer()
timer=NSTimer.scheduledTimerWithTimeInterval(1.0,target:self,selector:Selector("updateTimeLabel"), userInfo:nil , repeats: true)

我的問題是,當此游戲完成時,一個視圖顯示為當前視圖的子視圖,並且計時器使用

timer.invalidate()

並且在該子視圖上,有一個按鈕,可以在按下該按鈕后開始新游戲,新游戲開始,但計時器從停止時間開始計時。

假設游戲在00:10時間結束,因此出現子視圖,如果我們開始新游戲,則時間將從00:11開始。 當用戶移動到另一個視圖然后又回到同一視圖進行游戲時,這種方法很好用,在這種情況下,計時器從00:00開始,請告訴我我錯了

提前致謝。

當他決定開始新游戲時,您應該重置timeSec和timeMin變量。

換句話說,無論何時將帶有按鈕的子視圖從其父視圖中刪除,都將其重置。

或者,執行該按鈕操作。

重置正在更新updateTimeLabel方法中標簽的sec和minutes變量。 這會做

您的計時器僅用於觸發將更新時間標簽的方法。

游戲結束時,您需要將保持經過時間的變量重置為零。 在您的情況下,可能是timeSec ,由GameScreen類保留。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM