定时器对象,在OC中,定时器对象是NSTimer类型
//ViewController.h
#import <UIKit/UIKit>
@interface ViewController: UIViewController
{NSTimer *_timer; // 声明一个定时器对象int _time_num;
}
//ViewController.m
#import "ViewController.h"
@implementation
- (void) viewDidLoad{[super viewDidLoad];[self startTimer];
}
- (void) startTimer{_time_num = 0;// 启动一个循环定时器,间隔为1秒_timer = [NSTimer scheduledTimerWithTimerInterval:1 target:self selector:@selector(addTimeNum) userInfo:100 repeats: YES];
}
//接受参数
- (void) addTimeNum:(NSTimer *)timer {_time_num += 1;NSSLog(@"time_num = %s", _time_num);// 大于参数指定的值,清除定时器if (timer.userInfo > _time_num) {[_timer invalidate];}
}
@end
定时移动视图案列
//ViewController.m
#import "ViewController.h"
@implementation
- (void) viewDidLoad{[super viewDidLoad];[self startTimer];
}
- (void) createdView{UIView *view = [[UIView alloc] init];view.frame = CGRectMake(0, 0, 100, 100);view.backgroundColor = [UIColor greenColor];view.tag = 101 //设置ID,便于直接捕捉操作[self.view addSubView: view];
}
- (void) startTimer{_time_num = 0;// 启动一个循环定时器,间隔为1秒_timer = [NSTimer scheduledTimerWithTimerInterval:1 target:self selector:@selector(addTimeNum) userInfo:100 repeats: YES];
}
//接受参数
- (void) addTimeNum:(NSTimer *)timer {_time_num += 1;UIView *view = [self.view viewWithTag: 101];view.frame = CGRectMake(_time_num, _time_num, view.frame.origin.width, view.frame.origin.height);// 大于参数指定的值,清除定时器if (timer.userInfo > _time_num) {[_timer invalidate];}
}
@end
API
- List item
- (NSTimer*) scheduledTimerWithTimerInterval:int target:id selector:@selector userInfo:id repeats: BOOL
创建并返回一个定时器,参数1表示定时器执行间隔,单位秒。target参数表示事件函数实现对象的指针。 selector 表示事件函数。 userInfo表示传入事件函数的参数,不需要参数则传nil。repeats参数表示是否重复执行,YES或NO - (void) invalidate
清除定时器