iOS 简单的计时器NSTimer

// 通过输入手机号 填写回复验证码登录(计时器)

// 定义属性 yanZhengbutton,  设置button标题,点击事件 yanZheng:

     _yanZhengbutton = [[UIButton alloc]                 initWithFrame:CGRectMake(_maTextField.frame.origin.x + _maTextField.frame.size.width + 5, _maTextField.frame.origin.y, 100, 40)];

    [_yanZhengbutton setTitle:@"获取验证码" forState:UIControlStateNormal];

    [_yanZhengbutton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

    _yanZhengbutton.layer.masksToBounds = YES;

    _yanZhengbutton.layer.cornerRadius = 5;

    _yanZhengbutton.backgroundColor = [UIColor colorWithRed:51/255.f green:119/255.f blue:246/255.f alpha:1];

    [_yanZhengbutton addTarget:self action:@selector(yanZheng:) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:_yanZhengbutton];


   // 属性second(assign)

    self.second = 60;



)

    

// 点击事件 方法

- (void)yanZheng:(id)sender {

// self.yanZhengbutton  改变 

    [self.yanZhengbutton setTitle:@"60s" forState:UIControlStateNormal];

    [self.yanZhengbutton setUserInteractionEnabled:NO];

    [self.yanZhengbutton setBackgroundColor:[UIColor lightGrayColor]];

// 计时器

    self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(secondAction) userInfo:nil repeats:YES];


}



// 计时器点击事件

- (void)secondAction

{

    self.second = self.second - 1;

    

    [self.yanZhengbutton setTitle:[NSString stringWithFormat:@"%lds", (long)self.second] forState:UIControlStateNormal];

    

    if (self.second == 0) {

// 当second为0时, 停止计时 

        [self.timer invalidate];

// self.yanZhengbutton  改变  

        [self.yanZhengbutton setUserInteractionEnabled:YES];

        _yanZhengbutton.backgroundColor = [UIColor colorWithRed:51/255.f green:119/255.f blue:246/255.f alpha:1];

        [self.yanZhengbutton setTitle:@"获取验证码" forState:UIControlStateNormal];

// 重置second 60

        self.second = 60;

    }

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值