实现功能:倒计时10s,点击开始按钮可以开始倒计时,点击暂停按钮,实现暂停功能,然后设置一个恢复按钮,点击该按钮可以暂停计时并且时间显示为10。
过程分析:首先通过storyboard搭建界面,使用页面自动布局,此处有个小小的技巧:在Xcode6.2中默认是打开自动布局的,界面看着令人不舒服,先将自动布局关闭然后再打开,视图控制器是不是显得很顺眼啦? 然后是调整位置:选中你需要调节的视图,然后点击storyboard右下角的小按钮,这真是个神奇的东东,虽然我还不是太懂。
最后就是代码实现。
效果演示:
1.代码实现:
- (IBAction)begin:(UIBarButtonItem *)sender {
// 开始按钮
// 倒计时10秒 每秒更新一次
/*
参数说明:
1.时间间隔 double型
2.监听时钟触发的对象
3.调用方法
4.useerInfo 可以是任何对象 通常传递nil
5.是否重复
*/
// 如果几时到达零 点击开始按钮则从新计时
if (_counterTime.text.intValue == 0) {
_counterTime.text = @"10";
}
self.time = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTime:) userInfo:nil repeats:YES];
}
- (void)updateTime:(NSTimer *)timer
{
int count = _counterTime.text.intValue ;
// 判断是否为零
if (--count < 0 ) {
[self pause];
}else
self.counterTime.text = [NSString stringWithFormat:@"%d",count];
}
- (IBAction)pause {
// 停止始终 invalidate是唯一停止始终始终的方法
[self.time invalidate];
}
- (IBAction)return:(UIBarButtonItem *)sender {
[self pause];
self.counterTime.text = [NSString stringWithFormat:@"%d",10];
[self.time invalidate]; // 如果放在上面就不正常
}