swift – 停止dispatch_after
发布时间:2020-12-14 05:21:51 所属栏目:百科 来源:网络整理
导读:我使用动画指定一个提示,以帮助与延迟的交互使用以下: let delay = 1.8 * Double(NSEC_PER_SEC) let time = dispatch_time(DISPATCH_TIME_NOW,Int64(delay)) dispatch_after(time,dispatch_get_main_queue()) { //call the method which have the steps aft
我使用动画指定一个提示,以帮助与延迟的交互使用以下:
let delay = 1.8 * Double(NSEC_PER_SEC) let time = dispatch_time(DISPATCH_TIME_NOW,Int64(delay)) dispatch_after(time,dispatch_get_main_queue()) { //call the method which have the steps after delay. self.rain.alpha = 0 UIView.animateWithDuration(5,animations: { self.rain.alpha = 1 }) self.tip.startAnimating() } 但是,如果在动画开始之前用户触摸屏幕,我需要停止此延迟过程.
iOS 8和OS X优胜美地引入了dispatch_block_cancel,允许您在开始执行之前取消它们
您在类中声明一个变量,如下所示: var block: dispatch_block_t? Init块变量并在dispatch_after中提供: block = dispatch_block_create(DISPATCH_BLOCK_INHERIT_QOS_CLASS) { print("I executed") } let time: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW,Int64(5 * NSEC_PER_SEC)) dispatch_after(time,dispatch_get_main_queue(),block!) 之后,您可以取消它如下: dispatch_block_cancel(block!) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |