swift3.0語法變化之後,好多東西用法都發生了變化,最近要用到定時器,網上搜集了好多寫法,最後才搞好,現分享一下,方便以後使用,也希望能幫助別人
首先,創建定時器,和之前的有所不同,代碼如下:
var timer = DispatchSource.makeTimerSource(flags: [], queue:DispatchQueue.main),即在主線程中創建一個定時器,該種定時器是個DispatchSourceTimer
類型的對象;這樣我們就創建了一個基本的定時器,然後設定事件,
timer.scheduleRepeating(deadline: .now(), interval: .seconds(1) ,leeway:.milliseconds(40))
//該行代碼設定開始的時間,間隔的時間,以及剩餘持續的時間 40可以設定成你想要的數額,設定即可
timer.setEventHandler {
//該處設定要執行的事件,比如說要定時器控制的界面的刷新等等,記住,要用主線程刷新,不然會有延遲
}
另外急個函數,看準時機使用,
timer.suspend()//定時器繼續執行;
timer.cancel()//定時器取消,會銷燬;
timer.activate()/定時器開始激活timer.resume()定時器繼續
如上的配合使用,定時器就可以使用了