iOS学习笔记03 简单的倒计时

这两天,在学习简单的倒计时。在网上搜索的资料中看到了百分之九十的内容不适合我这样的新手看,有些写的太繁杂,有些写的就是不太全,我就还像前两篇那样,分步骤来写。
1.首先在你的项目中,你得获取到你需要进行倒计时的变量,我这就以秒数为例。

@property (nonatomic,assign) int letfSecond;//秒数

假设此时获取到的秒数为60秒。

self.letfSecond = 60;

2.可以直接在-(void)viewDidLoad中创建一个NSTimer(计时器)对象。计时器咋说呢,就是隔一定的时间做一次事情之类的,就像你每天早中晚吃饭一个意思吧。

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:_____ target:_____ selector:_____  userInfo:_____ repeats:_____];

后面的方法就是创建并返回一个新的NSTimer对象和时间表上当前运行循环在默认模式,第一个参数填写定时器的触发之间的秒数,我就填1;第二个参数填写目标,填self;第三个是定时器运作之后触发的方法,就填写个@selecotor(daojishi);第四个是用户信息计时器的用户信息。计时器维护一个强引用这个对象,直到(计时器)失效。这个参数可能是零。就填nil;最后一个就是是否重复,如果重复,计时器将不断重新安排自己直到失效,填写YESorNO都无所谓。
所以这么看来就是

NSTimer *timer =[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(daojishi) userInfo:nil repeats:YES];

3.就是实现定义中的方法了。

-(void)daojishi
{
    self.letfSecond--;//开始倒计时了
    //写一些你需要做的事情。
    if(self.letfSecond == 0)
    {
        [timer invalidate];
    }
}

这样三步一走,一个简单的倒计时就ok了。
补:很多时候,需要把时间显示出来什么的,但是形式不会只是秒数,就比如说有些时候需要倒计时15分钟之类的,那你获取的时间可能并不是你需要的形式。那你就得自己学会转换成自己需要的格式。
这里就顺便说一下转换格式什么的,那个比倒计时要简单的多。
声明两个变量

@property (nonatomic,strong) UILabel *label;
@property (nonatomic,strong) NSString *m_currentTime;

在你想实现的方法中写上

if (letfSecond >0 && letfSecond <900)
{
    if (letfSecond > 60)
    {
       //时间格式改成15:00分钟这样
        int minute = letfSecond/60;
        int second = letfSecond%60;
        self.m_currentTime = [NSString stringWithFormat:@"%d:%02d",minute,second];
    }
    else
    {
        //时间格式变成59秒这样
        self.m_currentTime = [NSString stringWithFormat:@"%02d秒",letfSecond];
    }
}
else
{
    self.m_currentTime = @"15分钟";
}
[self.label setText:[NSString stringWithFormat:@"订单在%@后自动撤销此单",self.m_currentTime]];

这段就可以放入上面的-(void)daojishi这个方法中,然后再外面的label上显示出来这么简单的就做好了。
看下图,图上的时间是一直在倒计时的。


github上传的代码简单的倒计时demo。 之前一直用svn,第一次上传到github上,大家要是有啥不懂得可以点开下载了看看呢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,462评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,083评论 18 139
  • 高考结束后跟密友聊天,说到班里的一个大神。当年他像是开了挂一样的成绩,总是让我百思不得其解——因为说真的,在每个人...
    陈大力阅读 8,109评论 105 462
  • “轻雪,你没事吧。”顾若秋不由心中一疼,只是却不知道如何劝解。在她想来,大概是因为叶轻雪要跟自己不喜欢的人结婚,所...
    飄雲阅读 283评论 0 1