zoukankan      html  css  js  c++  java
  • NSTimer类的使用

    创建一个 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
    •  //加定时器

         [[NSRunLoop currentRunLoop]run];

    停止 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];

    }

    }

  • 相关阅读:
    [LeetCode]2. Add Two Numbers链表相加
    Integration between Dynamics 365 and Dynamics 365 Finance and Operation
    向视图列添加自定义图标和提示信息 -- PowerApps / Dynamics365
    Update the Power Apps portals solution
    Migrate portal configuration
    Use variable to setup related components visible
    Loyalty management on Retail of Dynamic 365
    Modern Fluent UI controls in Power Apps
    Change screen size and orientation of a canvas app in Power App
    Communication Plan for Power Platform
  • 原文地址:https://www.cnblogs.com/ShaoYinling/p/4579301.html
Copyright © 2011-2022 走看看