文档章节

替代NSTimer的block计时器!!

super_co
 super_co
发布于 2015/06/12 16:34
字数 124
阅读 6
收藏 1

话不多说上代码:LIST


-(void)startTime{

    timeout_int=0;

    dispatch_queue_t queue_global =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0,0,queue_global);

    dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0);

    dispatch_source_set_event_handler(_timer, ^{

        __weak ViewController *weakself =self ;

        if(timeout_int>10){ //倒计时结束,关闭

            dispatch_source_cancel(_timer);

            dispatch_async(dispatch_get_main_queue(), ^{

               weakself.numberLabel.text = @"结束";

            });

        }else{

            //            int minutes = timeout_int / 60;

            int seconds = timeout_int % 61;

            NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];

           dispatch_async(dispatch_get_main_queue(), ^{

                //设置界面的按钮显示

                weakself.numberLabel.text = strTime;

            });

            timeout_int++;

              }

    });

    dispatch_resume(_timer);

}



© 著作权归作者所有

共有 人打赏支持
super_co
粉丝 1
博文 10
码字总数 7205
作品 1
东城
高级程序员
iOS查看屏幕帧数工具--YYFPSLabel

学习 YYKit 代码时,发现 ibireme 在项目里加入的一个查看当前屏幕帧数的小工具,效果如下: 挺实用,实现方法也很简单,但是思路特别棒。 这里是Demo: YYFPSLabel 这里我把这个小工具从 中...

yehot
2016/04/05
0
0
使用NSTimer出现的问题

使用NSTimer出现的问题 ***去年封的一个图片轮播的, 这两天在忙着给重新封装一下, 增加更多的方法, 有更多个性化的设置, 增加了网络请求图片的轮播. 重新封装, 这个过程还算顺利, 但是到计时...

hell03W
2016/03/24
28
0
图片自动滚动器

PageControl 在storyboard的scrollView中添加后,在代码中给scrollView中添加图片,会将pageControl覆盖掉,看不到了。 添加计时器: [NSTimer scheduledTimerWithTimeInterval:2.0 target:s...

马尔代夫的沙滩
2016/04/30
58
0
iOS开发中NSTimer的开启与关闭

调用一次计时器的方法: myTime = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO]; //不重复,只调用一次。timer运行......

刘三火
2016/05/22
155
0
SwiftyTimer

SwiftyTimer 是一组扩展,可以使 API 更加清晰易用,亲近 Swift 语法。 使用示例: 使用 NSTimer.every 和 NSTimer.after,可轻松地安排重复和不重复计时器(重复和延时): NSTimer.every(...

sikkx
2015/05/29
164
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

7 个致命的 Linux 命令

导读 如果你是一个 Linux 新手,在好奇心的驱使下,可能会去尝试从各个渠道获得的命令。以下是 7 个致命的 Linux 命令,轻则使你的数据造成丢失,重则使你的系统造成瘫痪,所以,你应当竭力避...

问题终结者
今天
0
0
设计模式:工厂方法模式(工厂模式)

工厂方法模式才是真正的工厂模式,前面讲到的静态工厂模式实际上不能说是一种真正意义上的设计模式,只是一种变成习惯。 工厂方法的类图: 这里面涉及到四个种类: 1、抽象产品: Product 2、...

京一
今天
0
0
区块链和数据库,技术到底有何区别?

关于数据库和区块链,总会有很多的困惑。区块链其实是一种数据库,因为他是数字账本,并且在区块的数据结构上存储信息。数据库中存储信息的结构被称为表格。但是,区块链是数据库,数据库可不...

HiBlock
今天
0
0
react native 开发碰到的问题

react-navigation v2 问题 问题: static navigationOptions = ({navigation, navigationOptions}) => ({ headerTitle: ( <Text style={{color:"#fff"}}>我的</Text> ), headerRight: ( <View......

罗培海
今天
0
0
Mac Docker安装流程

久仰Docker大名已久,于是今天趁着有空,尝试了一下Docker 先是从docker的官网上下载下来mac版本的docker安装包,安装很简易,就直接拖图标就好了。 https://www.docker.com/products/docker...

writeademo
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部