iOS中定时器NSTimer的开启与关闭
调用一次计时器方法:
- myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO];
- //不重复,只调用一次。timer运行一次就会自动停止运行
重复调用计时器方法:
- timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(function:) userInfo:nil repeats:YES];
- //每1秒运行一次function方法。
注意:将计数器的repeats设置为YES的时候,self的引用计数会加1。因此可能会导致self(即viewController)不能release,所以,必须在viewWillAppear的时候,将计数器timer停止,否则可能会导致内存泄露。
停止timer的运行,但这个是永久的停止:(注意:停止后,一定要将timer赋空,否则还是没有释放。不信?你自己试试~)
- //取消定时器
- [timer invalidate];
- timer = nil;
要想实现:先停止,然后再某种情况下再次开启运行timer,可以使用下面的方法:
首先关闭定时器不能使用上面的方法,应该使用下面的方法:
- //关闭定时器
- [myTimer setFireDate:[NSDate distantFuture]];
然后就可以使用下面的方法再此开启这个timer了:
- //开启定时器
- [myTimer setFireDate:[NSDate distantPast]];
例子:比如,在页面消失的时候关闭定时器,然后等页面再次打开的时候,又开启定时器。
(主要是为了防止它在后台运行,暂用CPU)可以使用下面的代码实现:
- //页面将要进入前台,开启定时器
- -(void)viewWillAppear:(BOOL)animated
- {
- //开启定时器
- [scrollView.myTimer setFireDate:[NSDate distantPast]];
- }
- //页面消失,进入后台不显示该页面,关闭定时器
- -(void)viewDidDisappear:(BOOL)animated
- {
- //关闭定时器
- [scrollView.myTimer setFireDate:[NSDate distantFuture]];
- }
iOS中定时器NSTimer的开启与关闭相关推荐
- IOS中定时器NSTimer
调用一次计时器方法: [cpp] view plain copy myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:sel ...
- iOS中定时器NSTimer的使用
1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelect ...
- iOS中关于NSTimer使用知多少
看到这个标题,你可能会想NSTimer不就是计时器吗,谁不会用,不就是一个能够定时的完成任务的东西吗? 我想说你知道NSTimer会retain你添加调用方法的对象吗?你知道NSTimer是要加到ru ...
- 路由器中的UPnP状态开启跟关闭有什么区别
路由器中的UPnP状态开启跟关闭区别为:安全性不同.NAT数据转换效率不同.路由器运行不同. 一.安全性不同 1.UPnP状态开启:UPnP状态开启会自动接受来自其他网络的远程控制,安全性低. 2.U ...
- guest用户计算机管理中没有,guest账户开启与关闭
guest账户开启的方法,很多人有时候为了系统的安全,关闭了guest账户,但对于电脑小白们却不知道guest账户开启与关闭,就让小编告诉小白们guest账户开启. 1.右键点击桌面上的"计 ...
- Ubuntu中设置防火墙的开启与关闭
今天在做 SVN 检出与提交的时候,一直失败,后来查找了多方面原因,是防火墙的问题.我用的 Ubuntu 是纯命令行界面的,所以需要通过命令进行开启与关闭. 这里介绍一下 Ubuntu 关于防火墙的设 ...
- ios nstimer实现延时_iOS中定时器NSTimer的使用
1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelect ...
- krpano中js控制陀螺仪开启与关闭
//开启陀螺仪 krpano.call("set(plugin[skin_gyro].enabled,true);"); //关闭陀螺仪 krpano.call("set ...
- AltiumDesigner画图不求人21 PCB中Online DRC的开启与关闭
原文地址(有视频教程):https://mp.weixin.qq.com/s/mtGcBQ0GT8fWnuoQCddfEg 往期技术文章:https://mp.weixin.qq.com/s/sf- ...
最新文章
- python长度分割文本_python 按照固定长度分割字符串的方法小结
- 解锁并设置远程登录尝试次数
- 【Android开发】消息处理类(Handler)与消息类(Message)介绍
- 用nginx TCP反向代理作mail邮件代理
- LeetCode 1073. 负二进制数相加(负数进制)
- python调用js获取异步返回的数据_Python怎么获取js动态加载的数据
- python预测发展趋势_Python预测算法哪家强?权游龙妈是生还是凉凉?
- linux镜像下载与安装
- 2021-08-10基于人脸识别的学生签到系统
- 2018.05.11 种花小游戏
- mysql怎么快速删除亿级数据_mysql数据库如何实现亿级数据快速清理
- 测试工程师的能力分类
- iphone手机app通过代理测试本地api方法
- Unity3D学习记录——NGUI Sprit2
- Java 前端传后台出现405,415错误的解决方法
- 4t硬盘实际容量是多少_怎么对大容量硬盘(例如4T硬盘)进行查看并分区
- 矩阵论 施密特正交化的几何解释_最直观图解法
- Lesson 10
- 女程序员再漂亮也是单身?解析程序员圈的奇怪现象
- 一文读懂Android View事件分发机制
热门文章
- fastp: 极速全能的FASTQ文件自动质控+过滤+校正+预处理软件
- SILVAngs:免费在线宏基因组扩增子分析系统
- R语言sqrt函数为数值开平方根实战
- R语言使用skimr包的skim函数查看整个dataframe数据集的summary信息、统计汇总信息(Summarize a whole dataset)
- R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(单色填充、分组颜色填充)实战(dot plot)
- Pandas将dataframe保存为pickle文件并加载保存后的pickle文件查看dataframe数据实战
- R构建岭回归模型(Ridge Regression)实战
- R可视化绘制卡方分布图(Chi-Square Distribution)
- 生物信息行业应该具备哪些基础素养?重点应该放在计算机方面还是生物方面或者说其他?
- 一个植物转录组项目的实战