#11 iOS App Swift Timer 筆記 & 實作
Published in
4 min readDec 7, 2020
最近寫作業發現好用的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()
—
使用方法一實作作品:
使用方法二實作作品:
參考資料: