iOS 关闭定时器

调用一次计时器方法:

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

重复调用计时器方法:

  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赋空,否则还是没有释放。不信?你自己试试~)

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

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

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

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

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

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

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

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

  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. }

OK,搞定。

时间: 2024-08-02 10:55:00

iOS 关闭定时器的相关文章

【转】 IOS中定时器NSTimer的开启与关闭

原文网址:http://blog.csdn.net/enuola/article/details/8099461 调用一次计时器方法: [cpp] view plain copy myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO]; //不重复,只调用一次.timer运行一次就会自动停止运行 重复调用计时

IOS中定时器NSTimer的开启与关闭

本文转载至 myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO]; //不重复,只调用一次.timer运行一次就会自动停止运行 重复调用计时器方法: [cpp] view plaincopy timer =  [NSTimer scheduledTimerWithTimeInterval:1.0 targe

iOS中定时器NSTimer的使用/开启与关闭

一.只调用一次计时器方法: //不重复,只调用一次.timer运行一次就会自动停止运行 myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(function:) userInfo:nil repeats:NO]; 二.重复调用计时器方法: //每2秒运行一次function方法. timer =  [NSTimer scheduledTimerWithTimeInterval:2

IOS开发定时器延时的探究

在日常开发中,我们经常要延时等待(如网络请求,UI更新完)然后做一些事情,或者是做一些周期性的处理.这个时候就要求我们实现一个周期性的定时器进行延时操作.常用的延时实现方法有下面三种: 1.NStimer实现 不管是一次性的还是周期性的timer的实际触发事件的时间,都会与所加入的RunLoop和RunLoop Mode有关,如果此RunLoop正在执行一个连续性的运算,timer就会被延时触发.重复性的timer遇到这种情况,如果延迟超过了一个周期,则会在延时结束后立刻执行,并按照之前指定的周

iOS中定时器NStimer的使用

1,NStimer 的初始化方式有下面四种,分为timerWithTimeInterval和scheduledTimerWithTimeInterval开头的 1 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo; 2 + (NSTimer *)scheduledTimerWithTimeInterval:(NSTime

iOS中定时器NSTimer使用

调用一次计时器方法: //不重复,只调用一次.timer运行一次就会自动停止运行 self.locationTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector: @selector(LocationTimer) userInfo:nil repeats:NO]; 重复调用计时器方法: //每1秒运行一次LocationTimer方法 self.locationTimer = [NSTimer schedul

IOS 关闭键盘 退出键盘 的5种方式(转)

IOS 关闭键盘 退出键盘 的5种方式 转自“http://blog.csdn.net/w88193363/article/details/24423635” 分类: iphone2014-04-24 17:03 2197人阅读 评论(0) 收藏 举报 1.点击编辑区以外的地方(UIView) 2.点击编辑区域以外的地方(UIControl) 3.使用制作收起键盘的按钮 4.使用判断输入字元 5.关于键盘遮蔽的问题 1,点击编辑区以外的地方(UIView) 这是一种很直觉的方法,当不再需要使用虚

IOS中定时器NSTimer

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

ios 之定时器的使用的技巧(结合runloop)使用

1.在项目中要使用到定时器,但是遇到了问题就是无法关闭定时器的,在网上找了资料才发生了原来定时器是要结合runloop的使用一起来的呀,不然是无法关闭定时器的使用的  self.timer1 = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(mythod1) userInfo:nil repeats:YES]; //将定时器加入到当前的runloop里面 [[NSRunLoop current