加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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!)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读