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

项目中可能会遇到有些倒计时的地方 比如 手机验证的时候,验证码一般都会有一个时间限制,此时在输入验证码的地方就需要展示一个倒计时 具体实现方式是使用了iOS 自带的 NSTimer ...
  • lwjok2007
  • lwjok2007
  • 2015年07月22日 18:21
  • 19381

iOS 计时器 单例 GCD 切换控制器倒计时继续读秒

写项目的时候需要一个计时器来做短信验证码的倒计时,场景需求是按钮点击后开始读秒,按钮不可用,当读秒结束按钮可用,在读秒期间切换控制器,或者将应用切换到后台在切换回读秒页面依旧在继续读秒。 代码如下:...
  • Nvermore_
  • Nvermore_
  • 2016年05月17日 14:20
  • 1548

iOS开发——实用OC篇&多种定时器详细介绍

转自:http://www.cnblogs.com/iCocos/p/4694581.html 在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法...
  • jacker_2014
  • jacker_2014
  • 2016年12月20日 14:36
  • 604

秒杀活动倒计时 iOS代码实现

IOS关于大型网站抢购、距活动结束,剩余时间倒计时的实现代码,代码比较简单,大家根据需求适当的添加修改删除代码 1.定义4个 Label 来接收倒计时...
  • qq_19678579
  • qq_19678579
  • 2017年05月09日 16:02
  • 1117

iOS实现倒计时显示 时 分 秒

1.创建一个类继承自UILabel.(用来显示 时 分 秒) .h文件 #import @interface TimeLable : UILabel @property (nonatomic,as...
  • Lea__DongYang
  • Lea__DongYang
  • 2017年02月13日 00:39
  • 2277

iOS 使用NSTimer写出Button获取验证码倒计时的效果

这里有2个要注意的点 1、这个button初始化时要设为custom类型的(避免倒数秒数时文字闪烁); 2、NSTimer要invalidate掉声明一个全局timer NSTimer *time...
  • qq_27687119
  • qq_27687119
  • 2016年06月12日 18:47
  • 1170

iOS倒计时的实现,显示剩余天、时、分、秒

iOS倒计时的实现,显示剩余天、时、分、秒 做项目中经常会遇到秒杀、抢商品啊等等。那么这个十分秒的倒数是如何代码实现的呢! Demo地址:https://github.com/zhengw...
  • Lea__DongYang
  • Lea__DongYang
  • 2017年02月13日 00:35
  • 1324

OC - 使用GCD实现倒计时功能

自己写了个NSObject的扩展,使用CGD方式实现倒计时功能,不多说了,直接上代码 .h文件 /**  *  处理倒计时停止的回调  */ typedef void(^HandleSt...
  • a645258072
  • a645258072
  • 2016年06月01日 12:01
  • 1268

iOS-OC一句话设施UIButton倒计时(获取验证码)

//获取验证码按钮 - (IBAction)getButtonClick:(UIButton *)sender; #pragma mark - 获取验证码 - (IBAction)...
  • u014220518
  • u014220518
  • 2016年01月13日 14:24
  • 2111

ios倒计时实现

//根据时间判读显示,10以下显示0*; - (NSString *)timeToBeStringWithInt:(NSInteger )time {     return time>=10?[...
  • xiao562994291
  • xiao562994291
  • 2015年04月12日 13:57
  • 300
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS_NSTimer倒计时实例
举报原因:
原因补充:

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