AJ学IOS(10)UI之_NSTimer_ios计时器
来源:互联网 发布:北京网络推广公司 编辑:程序博客网 时间:2024/04/28 23:33
AJ分享,必须精品
先看效果
代码
#import "NYViewController.h"@interface NYViewController () <UIAlertViewDelegate>@property (weak, nonatomic) IBOutlet UILabel *counterLabel;@property (nonatomic, strong) NSTimer *timer;@end@implementation NYViewController/**开始*/-(IBAction)start{// 倒计时10秒,计时器 /* NSTimer scheduledTimerWithTimeInterval 参数说明: 1,时间间隔,double 2,监听时钟触发的对象 3,调用方法 4,userInfo,可以是任意对象,通常传递nil,如果有传递值,大多数是为了在多个计数器中分辨用哪个 5,repeats:是否重复执行调用方法。 */// scheduledTimerWithTimeInterval 方法本质上就是创建一个时钟,// 添加到运行循环的模式是DefaultRunloopMode// _________________________________________________________________________________ //1>// self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];// 2> 与1一样// self.timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];// //将timer添加到运行循环,模式:默认运行循环模式// [[NSRunLoop currentRunLoop]addTimer:self.timer forMode:NSDefaultRunLoopMode];// __________________________________________________________________________________ //3> self.timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES]; //将timer添加到运行循环,模式:NSRunLoopCommonModes监听滚动模式 [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];}/**每秒更新counterLabel属性*/-(void) updateTimer{ //1,取出标签中得数字 int counter = self.counterLabel.text.intValue; //2,判断是否为0,如果是则停止时钟 if (--counter<0) { //提示用户,提示框 [[[UIAlertView alloc] initWithTitle:@"开始" message:@"开始啦。。。" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil] show]; //AlertView 中输入的最后是数组,可以通过代理方式来实现方法 [self pause]; }else{ //,3修改数字并显示更新UILabel self.counterLabel.text = [NSString stringWithFormat:@"%d",counter]; }}/**暂停*/-(IBAction)pause{ //停止时钟,invalidate是唯一的方法,一调用就干掉timer了,想再用只能重新实例化 [self.timer invalidate];}-(IBAction)stop{ [self pause]; self.counterLabel.text = @"10";}#pragma mark - alertView 代理方法-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{ NSLog(@"%d",buttonIndex);}@end
注意点NSTimer
用法:
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES]
参数说明:
1,时间间隔,double
2,监听时钟触发的对象
3,调用方法
4,userInfo,可以是任意对象,通常传递nil,如果有传递值,大多数是为了在多个计数器中分辨用哪个
5,repeats:是否重复执行调用方法。
是否要在发生滚动事件时候继续计时器
将timer添加到运行循环,模式:NSRunLoopCommonModes监听滚动模式
[[NSRunLoop currentRunLoop]addTimer:self.timer forMode:NSDefaultRunLoopMode];
提示框 UIAlertView
提示框
[[[UIAlertView alloc] initWithTitle:@”开始” message:@”开始啦。。。” delegate:self cancelButtonTitle:@”取消” otherButtonTitles:@”确定”, nil] show];
AlertView 中输入的最后是数组,可以通过代理方式来实现方法
#pragma mark - alertView 代理方法-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{ NSLog(@"%d",buttonIndex); //0指的是取消按钮 //可以加入if判断buttonIndx为多少来加入事件}
0 0
- AJ学IOS(10)UI之_NSTimer_ios计时器
- 猫猫学IOS(十)UI之_NSTimer_ios计时器
- (素材源码)猫猫学IOS(十)UI之_NSTimer_ios计时器
- AJ学IOS(19)UI之QQ好友列表
- AJ学IOS(20)UI之UIPickerView_点菜系统
- AJ学IOS(22)UI之UIApplicationDelegate和UIWindow
- AJ学IOS(23)UI之控制器管理
- AJ学IOS(24)UI之注册案例
- AJ学IOS(25)UI之触摸事件
- AJ学IOS(28)UI之Quartz2D简单介绍
- AJ学IOS(37)UI之CALayer
- AJ学IOS(38)UI之核心动画简介
- AJ学IOS(03)UI之纯代码实现UI——图片查看器
- AJ学IOS(05)UI之360等下载管理器九宫格UI
- AJ学IOS(08)UI之热门_喜马拉雅UI实现-UIScrollView的使用
- AJ学IOS(16)UI之XIB自定义Cell实现团购UI
- AJ学IOS(17)UI之纯代码自定义Cell实现新浪微博UI
- AJ学IOS(06)UI之iOS热门游戏_超级猜图
- AJ学IOS(06)UI之iOS热门游戏_超级猜图
- javascript权威指南学习笔记(二)
- AJ学IOS(07)UI之UITextField代理事件_类似QQ登陆窗口的简单实现
- AJ学IOS(08)UI之热门_喜马拉雅UI实现-UIScrollView的使用
- AJ学IOS(09)UI之UIScrollView代理触摸实现_图片缩放
- AJ学IOS(10)UI之_NSTimer_ios计时器
- AJ整理问题之:NSTimer准确吗?
- AJ学IOS(11)UI之图片自动轮播
- AJ学IOS(12)UI之UITableView学习(上)LOL英雄联盟练习
- AJ学IOS(13)UI之UITableView学习(下)汽车名牌带右侧索引
- AJ学IOS(14)UI之UITableView扩充_表格的修改_(增删移动)
- AJ学IOS(15)UI之曾经大热的打砖块小游戏
- AJ学IOS(16)UI之XIB自定义Cell实现团购UI
- springMVC拦截器使用场景,使用步骤(摘录整理)