#11 iOS App Swift Timer 筆記 & 實作

最近寫作業發現好用的Timer,來做個整理

將變數型別(type) 設定/宣告 為 Timer 即可產生 Timer

var timer: Timer?

啟用 Timer方法 ?

這裡介紹兩種使用方法,
只須使用iOS SDK 定義好的 Func scheduledTimer 即可。
(如果還想知道哪些方法,
可以參考蘋果官方文件

方法一

open class func scheduledTimer(withTimeInterval interval: TimeInterval, repeats: Bool, block: @escaping (Timer) -> Void) -> Timer

範例:

timer = Timer.scheduledTimer(withTimeInterval: 3.0, repeats: true, block: { (timer) in
print("you want to do")
})

參數介紹:

  • withTimeInterval:觸發Timer的間隔時間,以秒為單位。
  • repeat:true啟用後會根據 withTimeInterval 時間間隔設定來重複觸發,若填入false則啟用後只觸發一次。
  • block:啟用Timer後,每次觸發所要做的事情,為一個閉包。

方法二

open class func scheduledTimer(timeInterval ti: TimeInterval, target aTarget: Any, selector aSelector: Selector, userInfo: Any?, repeats yesOrNo: Bool) -> Timer

範例:

timer = Timer.scheduledTimer(timeInterval: 3.0, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true) } 

寫一個在 Timer觸發所要做的 objc func,這裡使用objc func名稱 timerAction

@objc func timerAction()
{
print("you want to do")
}

參數介紹:

  • timeInterval:觸發Timer的間隔時間,以秒為單位。
  • target:Timer 觸發的對象,self表示目前使用 UIViewController 本身。
  • selector:Timer 觸發後執行哪一個 objc func。
  • userInfo:可作為傳入Timer 觸發事件的資料,不使用傳入nil即可。
  • repeat:true啟用後會根據 timeInterval 時間間隔設定來重複觸發,若填入false則啟用後只觸發一次。

停止使用 Timer 方法

當不使用 Timer 卻沒停止它的話,是會一直在背景執行。

timer.invalidate()

使用方法一實作作品:

使用方法二實作作品:

參考資料:

--

--