IOS第六天(2:10秒倒计时)

****************10秒倒计时

#import "HMViewController.h"

@interface HMViewController () <UIAlertViewDelegate>

@property (weak, nonatomic) IBOutlet UILabel *counterLabel;

@property (nonatomic, strong) NSTimer *timer;
@end

@implementation HMViewController

/** 开始 */
- (IBAction)start
{
    // 倒计时10秒,每秒更新一下Label的显示
    // 计时器
    /**
     参数说明
     1. 时间间隔,double
     2. 监听时钟触发的对象
     3. 调用方法
     4. userInfo,可以是任意对象,通常传递nil
     5. repeats:是否重复
     */
    self.counterLabel.text = @"10";

    // scheduledTimerWithTimeInterval 方法本质上就是创建一个时钟,
    // 添加到运行循环的模式是DefaultRunLoopMode
    // ----------------------------------------------
    // 1>
//    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTimer:) userInfo:@"hello timer" 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];
    //[self updateTimer:self.timer];
}

/** 时钟更新方法 */
- (void)updateTimer:(NSTimer *)timer
{
   // NSLog(@"%s", __func__);
    // 1. 取出标签中的数字
    int counter = self.counterLabel.text.intValue;

    // 2. 判断是否为零,如果为0,停止时钟
    if (--counter < 0) {
        // 停止时钟
        [self pause];

        // 提示用户,提示框
//        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"开始" message:@"开始啦......" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", @"哈哈", nil];
//
//        [alert show];
        [[[UIAlertView alloc] initWithTitle:@"开始" message:@"开始啦......" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", @"哈哈", nil] show];
    } else {
        // CTRL + I
        // 3. 修改数字并更新UI
        self.counterLabel.text = [NSString stringWithFormat:@"%d", counter];
    }
}

/** 暂停 */
- (IBAction)pause
{
    // 停止时钟,invalidate是唯一停止时钟的方法
    // 一旦调用了invalidate方法,timer就无效了,如果再次启动时钟,需要重新实例化
    [self.timer invalidate];
}

#pragma mark - alertView代理方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSLog(@"%ldaaa-------", (long)buttonIndex);
}

@end
时间: 2024-10-14 00:58:32

IOS第六天(2:10秒倒计时)的相关文章

&lt;linux小脚本&gt;10秒倒计时

#!/bin/bash #带颜色的10秒倒计时 for  ((sec=10;sec>=0;sec--)) do echo -ne "\e[1;31myou have $sec seconds to prepared!\e[0m" echo -ne "\r" sleep 1 done echo

js实现模拟自动点击按钮,并且在10秒倒计时之后疯狂点击

需求来自于csdn问答,可以利用这个原理做秒杀抢单外挂. 代码示例如下: <html> <head> <meta charset="utf-8"/> <script type="text/javascript"> var count = 10; var sh; function counter(){ sh = setInterval(jishi,1000); } function jishi(){ var btn =

js实现60秒倒计时效果(使用了jQuery)

今天碰到要实现一个类似那种短信验证码60秒倒计时的需求,好久不写js,有点手生.把代码记录下,方便后续查阅. 这里我用了jQuey,毕竟写起来简洁点.下面直接看效果和代码. 一.效果 二.代码 (1)html <input type="button" id="btn" value="免费获取验证码" onclick="daojishi(10,this)" /> 注意:要引入JQuery (2)js <scri

js 10秒钟倒计时

第一个: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>counter</title> <script language="javascript" type="text/JavaScript"> function Count

30秒倒计时

1 from tkinter import * 2 counter = 30 3 def run_counter(digit): 4 def counting(): 5 global counter 6 counter -= 1 7 digit.config(text=str(counter)) 8 digit.after(1000,counting) 9 counting() 10 root = Tk() 11 root.title("30秒倒计时") 12 digit=Label(

简单操作只需10秒破解PDF加密文件

简单操作只需10秒破解PDF加密文件 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51345950 如何破解PDF加密文件,如何破解PDF密码呢,破解加密的PDF文件? 从网上下载的PDF文件,由于版权的问题,作者经常会加密禁止读者复制修改等权限,如下面的PDF文档,用Adobe pdf Reader打开时,会显示"已加密"的字样,虽然可以阅读,但不能修改和标记. 为了解决这个问题,可以采用绕过破解密码这一

shell脚本精华----在10秒内SSH登录失败次数超过3次就使用iptables/tcpwrappers拒绝

#!/bin/bash while true do badip=$(lastb -i -a | awk '/ssh:notty/ {print $NF}'|sort|uniq -c|awk '($1>3) {print $2}') for i in $badip do iptables -t filter -I INPUT -s $i -p tcp --dport 22 -j DROP done : > /var/log/btmp sleep 10s done shell脚本精华----在10

每隔10秒刷新页面 vue

这个问题首先要弄明白js与es6中的this属性到底指的是什么. methods: { getData(data){ ....//这是后台接口传过来的数据 }, initSetTimeout(today) {//每隔10秒刷新数据,也就是每隔10秒向后台请求一次数据 setInterval( () => {//es6中这个this指向的是这些方法,若setInterval(function(){ this.getData(today)})中的this指向的真个windows,这样写是会报错的,所

验证码60秒倒计时

验证码60秒倒计时(jQuery), 代码如下: //验证码倒计时 var countdown = 60; var st; function settime(element) { if (countdown != 0) { st = setTimeout(function () { settime(element); }, 1000); } if (countdown == 0) { element.removeAttr("disabled"); element.val("获