NSTimer知识点和倒计时的实现
来源:互联网 发布:法国斗牛犬 知乎 编辑:程序博客网 时间:2024/06/05 19:16
本博客转载自:http://www.cnblogs.com/ios-wmm/archive/2012/08/24/2654779.html
有以下三种方法:
[timer
NSTimer
NSTimer官方类方法不多,就下面这么一点东西,就都搬上来了:
@interface NSTimer : NSObject//初始化,最好用scheduled方式初始化,不然需要手动addTimer:forMode: 将timer添加到一个runloop中。
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; - (id)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(id)ui repeats:(BOOL)rep;
- (void)fire; //立即触发定时器
- (NSDate *)fireDate;//开始时间
- (void)setFireDate:(NSDate *)date;//设置fireData,其实暂停、开始会用到
- (NSTimeInterval)timeInterval;//延迟时间
- (void)invalidate;//停止并删除
- (BOOL)isValid;//判断是否valid
- (id)userInfo;//通常用nil@end
if ([scrollTimer isValid] == YES) { [scrollTimer invalidate]; scrollTimer = nil;}
定时器暂停与继续的简要方法:
[timer setFireDate:[NSDate date]]; //继续。[timer setFireDate:[NSDate distantPast]];//开启[timer setFireDate:[NSDate distantFuture]];//暂停
使用NSTimer实现倒计时的一个例子:
-(void)viewDidLoad中添加如下代码,每秒出发一次
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES]; //使用timer定时,每秒触发一次,然后就是写selector了。
- (void)timerFireMethod:(NSTimer*)theTimer{ NSCalendar *cal = [NSCalendar currentCalendar];//定义一个NSCalendar对象
NSDateComponents *endTime = [[NSDateComponents alloc] init]; //初始化目标时间...奥运时间好了
[endTime setYear:2008];
[endTime setMonth:8];
[endTime setDay:8];
[endTime setHour: 8];
[endTime setMinute:8];
[endTime setSecond:8];
NSDate *todate = [cal dateFromComponents:endTime]; //把目标时间装载入date
[endTime release]; NSDate *today = [NSDate date]; //得到当前时间 //用来得到具体的时差 unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; NSDateComponents *d = [cal components:unitFlags fromDate:today toDate:todate options:0];
NSLog(@"%d年%d月%d日%d时%d分%d秒",[d year],[d month], [d day], [d hour], [d minute], [d second]);}
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer知识点和倒计时的实现
- NSTimer详解和倒计时的实现
- NSTimer详解和倒计时的实现
- 使用NSTimer和gcb实现倒计时
- VS2015 C++编译失败,提示link1171,无法加载mspdb140.dll错误解决方法!
- Python文件
- OC学习之NSDictionary,NSSet
- 二叉树的打印
- OC学习总结之KVC KVO 通知
- NSTimer知识点和倒计时的实现
- objective-c 编程总结(第四…
- [转]IOS Quartz 2D 学习(1…
- Codeforces Round #396 (Div. 2)E(树形dp,按位运算,好题)
- 达晨创投投资列表
- [转]IOS Quartz 2D 学习(2…
- UIView用户事件响应
- Apache Kylin Buid Cube详细流程
- ImportError: No module named packaging.version