一个简单的定时器

定义一个全局时间变量

NSTimer *_timer;

创建时间变量 并调用定时器方法

- (void)viewDidLoad

{

[super viewDidLoad];

_timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeClick) userInfo:nil repeats:YES];

[_timer fireDate];//启动定时器

}

#pragma mark - 考试时间倒计时

- (void)timeClick

{

timeout -= 1;

NSInteger hour = timeout / 3600;

NSInteger minutes = (timeout / 60) % 60;

NSInteger seconds = timeout % 60;

NSString *strTime = [NSString stringWithFormat:@"%.2ld:%.2ld:%.2ld",(long)hour,(long)minutes, (long)seconds];

[rightButton setTitle:strTime forState:UIControlStateNormal];

if (timeout <= 0)

{

[_timer setFireDate:[NSDate distantFuture]];

[self showAlertView:@"考试时间已到"];

}

}

- (void)method

{

if (_isClick)

{//开始

if ([_timer isValid])

{

[_timer invalidate];

_timer = nil;

label.text = @"开始";

_isClick = NO;

}

}

else

{//暂停

//invalidate后再重新创建时间, 由于属性保存了保值, 所以计数器从属性值开始计数

_timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeClick) userInfo:nil repeats:YES];

[_timer fireDate];

label.text = @"暂停";

_isClick = YES;

}

}

时间: 2024-12-14 05:36:37

一个简单的定时器的相关文章

Tcp/ip实验准备:一个简单的定时器——boost实现

tcp/ip实验须要在指定的时间查看结果,为了实验方便,做了一个定时器.用法是: 在命令行输入:timer 输入数字之后,计时对应秒数 输入m数字之后.计时对应分钟数(支持小数分钟数) 输入q退出. 时间到了之后会有3声蜂鸣,并显示Time is up! OK,显示一个进度条会好用一些. 程序例如以下: timer.cpp: //g++ timer.cpp -o timer.exe -lboost_thread-mgw48-mt-1_56 -lboost_system-mgw48-1_56 -s

用vue实现一个简单的时间屏幕

前言 去年用了一个小的 app,叫做 一个木函,本来想着用来做动画优化就删掉了的,不过看到他有个时间屏幕的小工具,就点进去看了下,觉得挺好玩的,就想着能不能自己实现一下. ps: 闲话不多说,先上例子点我查看,觉得没啥意思的就不需要再往下看了 简单的搭建一下 初始化一个 vue 项目 vue create vue-time 然后无脑下一步就好了(回车),这里我打算用 scss 方便我们书写样式 ,所以创建完成后,我们在安装下 scss cd vue-time npm i sass-loader

Golang中使用heap编写一个简单高效的定时器模块

定时器模块在服务端开发中非常重要,一个高性能的定时器模块能够大幅度提升引擎的运行效率.使用Golang和heap实现一个通用的定时器模块,代码来自:https://github.com/xiaonanln/goTimer 也可以查看文档:http://godoc.org/github.com/xiaonanln/goTimer,下面是完整的代码,并进行适当的注释和分析. 从性能测试结果来看,基于heap的定时器模块在效率上并不会比时间轮(TimeWheel)的实现慢多少,但是逻辑上要简单很多.

一个简单的联动菜单和定时器

一个简单的联动菜单: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html"; charset="utf-8" /> <title>联动菜单</title> </head> <script type="text/javascript"

一个简单的Spring定时器例子 注解方式

首先在applicationContext.xml中增加 文件头中增加一条 xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation 中增加一条 http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd <beans xmlns:task=&quo

写的一个简单定时器(非独立线程)

//Callback.h #ifndef __CALLBACK_H__ #define __CALLBACK_H__ typedef void (*T_CallBack)(void *); typedef struct { T_CallBack cb; void *obj; }ST_CallBack; int __NewTimer(void* obj, int interval, bool isloop, T_CallBack cb); void __DeleteTimer(int handle

分享一个简单易用的软件定时器模块——基于keil+stm32f103zet+hal库(裸机实现)

公众号上看到一个比较好的一个github项目:https://github.com/0x1abin/MultiTimer 今天看了看,简单的,就移植了- 且看文档的说明, ================================= 分享一个简单易用的软件定时器模块——MultiTimer.源码地址: https://github.com/0x1abin/MultiTimer 简介 MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更

一个简单的“贪吃蛇”小游戏

一个简单的“贪吃蛇”小游戏 页面结构 简单的21x21的方块,页面结构 id为container的div包含所21个class名为row的div,每个row代表贪吃蛇的一整行,每个row中又包含21个div,代表这一行的每一个div方格,如果这个方格是空的话,div的类名为blank,如果这一个方格表示“贪吃蛇”的“食物”,div的类名为food,如果这一个方格表示“蛇”,div的类名为snake. CSS JS 然后我们思考下一个贪吃蛇游戏需要那些参数, 首先,界面中可见的元素无非就是空方格,

一个简单的记事本编辑框的实现以及搜集的一些窗口风格的预定义

这是一个简单的记事本的窗口过程 1 WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 2 3 LOCAL winRect:RECT 4 LOCAL editWidth:DWORD 5 LOCAL editHeight:DWORD 6 7 .IF uMsg==WM_DESTROY 8 invoke PostQuitMessage,NULL 9 .ELSEIF uMsg==WM_CREATE 10 ;创建一个编辑框 11