文档章节

iOS开发中NSTimer的开启与关闭

刘三火
 刘三火
发布于 2016/05/22 16:42
字数 323
阅读 161
收藏 0

调用一次计时器的方法:

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

 重复调用计时器的方法:

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

注意:将计时器的reperts设置为YES,self的引用计数会加1,viewController可能不会release。所以,我们最好在viewWillAppear的时候,将计时器停止,否则可能会导致内存的泄露。

记住:停止以后,记得将NSTimer置空哦。

//取消定时器
[timer invalidate];
timer = nil;

关闭定时器的方法:

//关闭定时器
[myTimer setFireDate:[NSDate distantFuture]];

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

//开启定时器
[myTimer setFireDate:[NSDate distantPast]];

例子:比如:在界面消失的时候关闭定时器,页面再次打开的时候,再开启定时器

//页面将要进入前台,开启定时器
-(void)viewWillAppear:(BOOL)animated
{
    //开启定时器
    [scrollView.myTimer setFireDate:[NSDate distantPast]];
}

//页面消失,进入后台不显示该页面,关闭定时器
-(void)viewDidDisappear:(BOOL)animated
{
    //关闭定时器
    [scrollView.myTimer setFireDate:[NSDate distantFuture]];
}

 

© 著作权归作者所有

共有 人打赏支持
刘三火
粉丝 0
博文 10
码字总数 647
作品 0
郑州
说说 NSTimer 的新 API

本文是我首发在iOS知识小集团队的,欢迎关注微博话题#ios知识小集#。 在以往的 iOS 版本中,我们为了避免 NSTimer 的循环引用问题,一个比较常用的解决办法是为 NSTimer 添加一个 category,...

halohily
05/03
0
0
iOS天气动画、高仿QQ菜单、放京东APP、高仿微信、推送消息等源码

iOS精选源码 TYCyclePagerView iOS上的一个无限循环轮播图组件(http://www.code4app.com/thread-14507-1-1.html) iOS高仿微信完整项目源码(http://www.code4app.com/thread-14695-1-1.html)......

sunnyaigd
06/12
0
0
iOS查看屏幕帧数工具--YYFPSLabel

学习 YYKit 代码时,发现 ibireme 在项目里加入的一个查看当前屏幕帧数的小工具,效果如下: 挺实用,实现方法也很简单,但是思路特别棒。 这里是Demo: YYFPSLabel 这里我把这个小工具从 中...

yehot
2016/04/05
0
0
【IOS视频教学】三个月学会IOS开发

一、windows系统下安装虚拟机-mac系统-视频教程-安装件全套下载:http://www.wyzc.com/forum/56212.html 二、史上最佳0基础Swift语言视频教程下载链接:http://www.wyzc.com/forum/56744.htm...

马洪伟
2014/12/25
0
0
iOS中的CADisplayLink定时器

iOS中的CADisplayLink定时器 说到定时器,在iOS中最常用的为NSTimer类,其实CADisplayLink类在某些场景下使用,要比NSTimer类更加适合。首先CADisplayLink也是一种定时器,并且其和屏幕的刷新...

珲少
07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
0
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
0
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
2
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部