//关闭定时器
fileprivate func invalidateTimer(){
guard timer != nil else {
return
}
timer.invalidate()
timer = nil
}
//开启定时器
fileprivate func setupTimer(){
if self.timer == nil {
/* 调用了scheduledTimer返回的定时器,已经自动被添加到当前runLoop中,而且是NSDefaultRunLoopMode, 定时器只运行在NSDefaultRunLoopMode下,一旦RunLoop进入其他模式,这个定时器就不会工作*/
let timer = Timer.scheduledTimer(timeInterval: option.scrollTimeInterval, target: self, selector: #selector(autoScroll), userInfo: nil, repeats: true)
/* 定时器会跑在标记为common modes的模式下
标记为common modes的模式:UITrackingRunLoopMode和NSDefaultRunLoopMode都会跑*/
//修改为commonModes模式
RunLoop.main.add(timer, forMode: .commonModes)
self.timer = timer
}
}
备忘——定时器
最新推荐文章于 2024-07-14 08:58:35 发布