调用一次计时器方法:

[cpp] view plain copy  
  1. myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO];
  2. //不重复,只调用一次。timer运行一次就会自动停止运行

重复调用计时器方法:

[cpp] view plain copy  
  1. timer =  [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(function:) userInfo:nil repeats:YES];
  2. //每1秒运行一次function方法。

注意:将计数器的repeats设置为YES的时候,self的引用计数会加1。因此可能会导致self(即viewController)不能release,所以,必须在viewWillAppear的时候,将计数器timer停止,否则可能会导致内存泄露。

停止timer的运行,但这个是永久的停止:(注意:停止后,一定要将timer赋空,否则还是没有释放。不信?你自己试试~)

[csharp] view plain copy  
  1. //取消定时器
  2. [timer invalidate];
  3. timer = nil;

要想实现:先停止,然后再某种情况下再次开启运行timer,可以使用下面的方法:

首先关闭定时器不能使用上面的方法,应该使用下面的方法:

[cpp] view plain copy  
  1. //关闭定时器
  2. [myTimer setFireDate:[NSDate distantFuture]];

然后就可以使用下面的方法再此开启这个timer了:

[csharp] view plain copy  
  1. //开启定时器
  2. [myTimer setFireDate:[NSDate distantPast]];

例子:比如,在页面消失的时候关闭定时器,然后等页面再次打开的时候,又开启定时器。

(主要是为了防止它在后台运行,暂用CPU)可以使用下面的代码实现:

[cpp] view plain copy  
  1. //页面将要进入前台,开启定时器
  2. -(void)viewWillAppear:(BOOL)animated
  3. {
  4. //开启定时器
  5. [scrollView.myTimer setFireDate:[NSDate distantPast]];
  6. }
  7. //页面消失,进入后台不显示该页面,关闭定时器
  8. -(void)viewDidDisappear:(BOOL)animated
  9. {
  10. //关闭定时器
  11. [scrollView.myTimer setFireDate:[NSDate distantFuture]];
  12. }

iOS中定时器NSTimer的开启与关闭相关推荐

  1. IOS中定时器NSTimer

    调用一次计时器方法: [cpp]  view plain copy   myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:sel ...

  2. iOS中定时器NSTimer的使用

    1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelect ...

  3. iOS中关于NSTimer使用知多少

    看到这个标题,你可能会想NSTimer不就是计时器吗,谁不会用,不就是一个能够定时的完成任务的东西吗? 我想说你知道NSTimer会retain你添加调用方法的对象吗?你知道NSTimer是要加到ru ...

  4. 路由器中的UPnP状态开启跟关闭有什么区别

    路由器中的UPnP状态开启跟关闭区别为:安全性不同.NAT数据转换效率不同.路由器运行不同. 一.安全性不同 1.UPnP状态开启:UPnP状态开启会自动接受来自其他网络的远程控制,安全性低. 2.U ...

  5. guest用户计算机管理中没有,guest账户开启与关闭

    guest账户开启的方法,很多人有时候为了系统的安全,关闭了guest账户,但对于电脑小白们却不知道guest账户开启与关闭,就让小编告诉小白们guest账户开启. 1.右键点击桌面上的"计 ...

  6. Ubuntu中设置防火墙的开启与关闭

    今天在做 SVN 检出与提交的时候,一直失败,后来查找了多方面原因,是防火墙的问题.我用的 Ubuntu 是纯命令行界面的,所以需要通过命令进行开启与关闭. 这里介绍一下 Ubuntu 关于防火墙的设 ...

  7. ios nstimer实现延时_iOS中定时器NSTimer的使用

    1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelect ...

  8. krpano中js控制陀螺仪开启与关闭

    //开启陀螺仪 krpano.call("set(plugin[skin_gyro].enabled,true);"); //关闭陀螺仪 krpano.call("set ...

  9. AltiumDesigner画图不求人21 PCB中Online DRC的开启与关闭

    原文地址(有视频教程):https://mp.weixin.qq.com/s/mtGcBQ0GT8fWnuoQCddfEg ​往期技术文章:https://mp.weixin.qq.com/s/sf- ...

最新文章

  1. python长度分割文本_python 按照固定长度分割字符串的方法小结
  2. 解锁并设置远程登录尝试次数
  3. 【Android开发】消息处理类(Handler)与消息类(Message)介绍
  4. 用nginx TCP反向代理作mail邮件代理
  5. LeetCode 1073. 负二进制数相加(负数进制)
  6. python调用js获取异步返回的数据_Python怎么获取js动态加载的数据
  7. python预测发展趋势_Python预测算法哪家强?权游龙妈是生还是凉凉?
  8. linux镜像下载与安装
  9. 2021-08-10基于人脸识别的学生签到系统
  10. 2018.05.11 种花小游戏
  11. mysql怎么快速删除亿级数据_mysql数据库如何实现亿级数据快速清理
  12. 测试工程师的能力分类
  13. iphone手机app通过代理测试本地api方法
  14. Unity3D学习记录——NGUI Sprit2
  15. Java 前端传后台出现405,415错误的解决方法
  16. 4t硬盘实际容量是多少_怎么对大容量硬盘(例如4T硬盘)进行查看并分区
  17. 矩阵论 施密特正交化的几何解释_最直观图解法
  18. Lesson 10
  19. 女程序员再漂亮也是单身?解析程序员圈的奇怪现象
  20. 一文读懂Android View事件分发机制

热门文章

  1. fastp: 极速全能的FASTQ文件自动质控+过滤+校正+预处理软件
  2. SILVAngs:免费在线宏基因组扩增子分析系统
  3. R语言sqrt函数为数值开平方根实战
  4. R语言使用skimr包的skim函数查看整个dataframe数据集的summary信息、统计汇总信息(Summarize a whole dataset)
  5. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(单色填充、分组颜色填充)实战(dot plot)
  6. Pandas将dataframe保存为pickle文件并加载保存后的pickle文件查看dataframe数据实战
  7. R构建岭回归模型(Ridge Regression)实战
  8. R可视化绘制卡方分布图(Chi-Square Distribution)
  9. 生物信息行业应该具备哪些基础素养?重点应该放在计算机方面还是生物方面或者说其他?
  10. 一个植物转录组项目的实战