NSTimer 小记

简介: <p style="font-size:19px; line-height:normal; margin-top:0px; font-family:'Lucida Grande'"> 创建一个 Timer</p> <ul style="margin-left:30px; padding-left:0px; font-family:Verdana,Geneva,Arial,Helveti

创建一个 Timer

  • + scheduledTimerWithTimeInterval: invocation: repeats:
  • + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti   invocation:(NSInvocation *)invocation   repeats:(BOOL)yesOrNo;
  • + scheduledTimerWithTimeInterval: target: selector: userInfo: repeats:
  • + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti   target:(id)aTarget   selector:(SEL)aSelector   userInfo:(id)userInfo   repeats:(BOOL)yesOrNo;
  • 创建返回一个新的NSTimer对象和时间表,在当前的默认模式下循环调用一个实例方法。
  • + timerWithTimeInterval: invocation: repeats:
  • + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
  • + timerWithTimeInterval: target:selector: userInfo:repeats:
  • + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
  • – initWithFireDate: interval: target: selector: userInfo: repeats:
  • - (id)initWithFireDate:(NSDate *)date   interval:(NSTimeInterval)ti     target:(id)t    selector:(SEL)s    userInfo:(id)ui    repeats:(BOOL)rep;

scheduledTimerWithTimeInterval:(NSTimeInterval)seconds  

预订一个Timer,设置一个时间间隔。

表示输入一个时间间隔对象,以秒为单位,一个>0的浮点类型的值,如果该值<0,系统会默认为0.1

 target:(id)aTarget

表示发送的对象,如self

 selector:(SEL)aSelector

方法选择器,在时间间隔内,选择调用一个实例方法

userInfo:(id)userInfo

此参数可以为nil,当定时器失效时,由你指定的对象保留和释放该定时器。

repeats:(BOOL)yesOrNo

YES时,定时器会不断循环直至失效或被释放,当NO时,定时器会循环发送一次就失效。

invocation:(NSInvocation *)invocation

启动 Timer

  • – fire

停止 Timer

  • – invalidate

Timer设置

  • – isValid
  • – fireDate
  • – setFireDate:
  • – timeInterval
  • – userInfo

NSTimeInterval类:是一个浮点数字,用来定义秒


例子:

iphone为我们提供了一个很强大得时间定时器 NSTimer

他可以完成任何定时功能:

我们使用起来也很简单,只要记住三要素就可以,具体得三要素是:时间间隔NSTimeInterval浮点型,事件代理

delegate和事件处理方法@selector();就可以用

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; 来初始化一个 时间定时器

下面我写了一个很简单得例子

初始化一个定时器:

-(void)initTimer

{

//时间间隔

NSTimeInterval timeInterval =1.0 ;

//定时器

NSTimer   showTimer = [NSTimer scheduledTimerWithTimeInterval:maxShowTime

                                                                 target:self

                                                            selector:@selector(handleMaxShowTimer:)

                                                               userInfo:nil

                                                                repeats:NO];

}

//触发事件

-(void)handleMaxShowTimer:(NSTimer *)theTimer

{

NSDateFormatter dateFormator = [[NSDateFormatter alloc] init];

dateFormator.dateFormat = @"yyyy-MM-dd  HH:mm:ss";

NSString *date = [dateformater stringFromDate:[NSDate date]];

if([date isEqualToString:@"2011-11-09 23:59:59"])

{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:TITLE_NAME

        message:@"现在马上就有新的一天了!"

       delegate:self

       ancelButtonTitle:nil

      otherButtonTitles:CONFIRM_TITLE, nil];

[alert show];

[alert release];

}

[data release];

[dateFormator release];

}

另外附一个例子:方框赛跑

-(void)viewDidLoad

{

[super viewDidLoad];

CGRect workingFrame;

workingFrame.origin.x = 15;

workingFrame.origin.y = 400;

workingFrame.size.width = 40;

workingFrame.size.height = 40;

for(int i = 0; i < 6; i++)

{

UIView *myView = [[UIView alloc] initWithFrame:workingFrame];

[myView setTag:i];//标记方块

[myView setBackgroundColor:[UIColor blueColor]];

workingFrame.origin.x = workingFrame.origin.x + workingFrame.size.width + 10;

[self.view addSubview:myView];

}

}

目录
打赏
0
0
0
0
2
分享
相关文章
你真的知道什么是冒烟测试吗?
大家好,我是阿萨。日常工作中,经常都会提到冒烟测试。那么什么是冒烟测试呢?
3154 0
你真的知道什么是冒烟测试吗?
iOS开发之有间距的UITableViewCell
UITableView是最常用的一个iOS控件,现要做一个如下图的UITableView,其中白色部分就是cell,可是默认的UITableView中cell之间是没有间隔的,那么办呢?网上有2种做法,我这里顺带提一下吧 效果图.png 1、方式一 通过设置cell的contentView来间接实现,在cell的contentView的顶部或者底部留下一定的间距,这样就会有cell间就有间距的效果。
1447 0
AbpHelper CLI积累与实战分享
【9月更文挑战第19天】AbpHelper CLI 是一个强大的工具,用于提升开发人员使用 ABP 框架时的效率。它能快速生成代码、确保代码规范性,并执行自动化任务如数据库迁移和种子数据插入。本文分享了如何利用 AbpHelper CLI 快速初始化项目、开发模块及注意事项,帮助开发者提高效率和代码质量。
119 7
探索iOS开发:从初级到高级的旅程
本文将深入探讨iOS开发的各个方面,从基础知识到高级技术,以及如何从初级开发者成长为高级开发者。我们将讨论各种工具、技术和策略,以帮助你在iOS开发领域取得成功。无论你是刚刚开始学习iOS开发,还是已经有一些经验并希望提升你的技能,这篇文章都将为你提供有价值的信息和建议。
vue中watch监听路由传来的参数变化问题
vue中watch监听路由传来的参数变化问题
386 0
vue地址栏输入路由跳转到首页,未登录跳转到登录页面的方法
vue地址栏输入路由跳转到首页,未登录跳转到登录页面的方法
455 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问