iOS_NSTimer倒计时实例

原创 2016年05月31日 19:23:08

这两天用到了,很久前封的一个NSTimer类,整理了下和小伙伴们一起分享下。

2016-09-09 NSTimer的补充

关于NSTimer的定义,官方给出解释是“A timer provides a way to perform a delayed action or a periodic action. The timer waits until a certain time interval has elapsed and then fires, sending a specified message to a specified object. ” 翻译过来就是timer就是一个能在从现在开始的后面的某一个时刻或者周期性的执行我们指定的方法的对象。

而我们还应该注意, timer不是一种实时的机制,会存在延迟,而且延迟的程度跟当前线程的执行情况有关(比如大数据运算时)。

------------------------------------------------------------------------------------------


这里是核心代码:

<span style="font-family:Microsoft YaHei;font-size:14px;">//换算成倒计时时间
- (void)setTimeLabelbyday:(NSInteger)day andhour:(NSInteger)hour andmin:(NSInteger)min andsecond:(NSInteger)second{
    self.lastTime=((day*24+hour)*60+min)*60+second;
    
    self.str_Time=[NSString stringWithFormat:@"%02ld:%02ld:%02ld",self.lastTime/3600%24,self.lastTime/60%60,self.lastTime%60];
    
    self.myTime=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timeMove) userInfo:nil repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:self.myTime forMode:NSRunLoopCommonModes];
}

//计时方法
- (void)timeMove{
    if (self.lastTime==0) {
        [self timeStop];
        if (self.block_TimeUp) {
            self.block_TimeUp();
        }
    }else{
        //递减
        self.lastTime--;
        //新的字符串内容
        lab.text = [NSString stringWithFormat:@"%02ld:%02ld:%02ld",self.lastTime/3600%24,self.lastTime/60%60,self.lastTime%60];
     }
}

//开始倒计时
- (void)timeStart{
    [self.myTime setFireDate:[NSDate distantPast]];
}

//停止倒计时
- (void)timeStop{
    [self.myTime setFireDate:[NSDate distantFuture]];
}
</span>


demo链接:

倒计时demo (提取码:7896)



感谢观看,学以致用更感谢~



版权声明:本文为博主原创文章,转载时请声明:http://blog.csdn.net/siwen1990 转载

相关文章推荐

iOS NSTimer 实现倒计时

[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFireMethod:) userI...

使用NSTimer和gcb实现倒计时

今天在CocoaChina上面看到有人在问倒计时怎么做,记得以前在看Iphone31天的时候做过一个,今天翻出来运行不了了,原因是我的Iphone SDK升级到3.1了,以前使用的是2.2.1,在2....

NSTimer知识点和倒计时的实现

NSTimer其实是将一个监听加入到系统的RunLoop中去,当系统runloop到如何timer条件的循环时,会调用timer一次,当timer执行完,也就是回调函数执行之后,timer会再一次的将...

基于NSTimer的倒计时

OSX或IOS开发过程中,实现倒计时功能的有两种方法,一种是使用NSTimer来实现,第二种是使用GCD(配合dispatch_source_t相关类)的方法来实现。本文主要基于NSTimer来实现倒...

NSTimer实现倒计时 及 定时器用法

-(void)awakeFromNib{    // Create the rendering loop timer    renderTimer = [[NSTimer scheduledTimer...

除NStimer之外GCD倒计时写法

先了解一些基本知识 第一:      Dispatch Source的几种种类:      1、DISPATCH_SOURCE_TYPE_DATA_ADD 变量增加      2、DISPATCH_S...

NSTimer倒计时

// 倒计时10秒,每秒更新一下Label的显示 // 计时器 /** 参数说明 1. 时间间隔,double 2. 监听时钟触发的对象 3...

NSTimer知识点和倒计时的实现

NSTimer其实是将一个监听加入到系统的RunLoop中去,当系统runloop到如何timer条件的循环时,会调用timer一次,当timer执行完,也就是回调函数执行之后,timer会再一次的将...

NSTimer详解和倒计时的实现

NSTimer其实是将一个监听加入到系统的RunLoop中去,当系统RunLoop到如何timer条件的循环时,会调用timer一次,当timer执行完,也就是回调函数执行之后,timer会再一次的将...

setInterval(倒计时实例)和setTimeout的用法

实例: html页面
  • snn1410
  • snn1410
  • 2014年09月25日 10:39
  • 8233
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS_NSTimer倒计时实例
举报原因:
原因补充:

(最多只允许输入30个字)