重新获取验证码的按钮

很多应用在修改密码或者是更改个人信息时,需要用户输入手机验证码,其间有个等待过程,一般为60秒,等待结束后可以重新点击按钮获取新的验证码,在页面来回跳转之后又可以重新计时,简要做以下整理:

在.h文件中声明计时器

@interface LinViewController : UIViewController

@property (strong, nonatomic) UIButton * button;

@property (strong, nonatomic) NSTimer * timer;

@end

在.m中实现,特别是- (void)viewWillAppear:(BOOL)animated
和 - (void)viewWillDisappear:(BOOL)animated
方法

//当页面有跳转的操作的时间需要调用[self.timer invalidate],使计时器停止,否则会造成时间连续走动

static int myTime;

- (void)viewWillAppear:(BOOL)animated
{
    [self.timer invalidate];
    self.timer= [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(changeButtonName) userInfo:nil repeats:YES];

    self.button.enabled = NO;
    self.button.titleLabel.text = @"10秒后重新获取";
    myTime = 10;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [self.timer invalidate];
}

- (void)changeButtonName
{
    if (myTime > 0) {
        self.button.enabled = NO;
        myTime--;
        NSString * string = [NSString stringWithFormat:@"%d秒后重新获取",myTime];
        NSLog(@"%@===",string);
        self.button.titleLabel.text = string;
    }else
    {
        [self.timer invalidate];
        self.button.enabled = YES;
    }
}

- (void)addButtonAction
{
    [self.timer invalidate];
    [self viewWillAppear:YES];
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.button setFrame:CGRectMake(90, 90, 200, 30)];
    [self.button setTitle:@"重新获取验证码" forState:UIControlStateNormal];
    [self.button addTarget:self action:@selector(addButtonAction) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:self.button];
}

重新获取验证码的按钮

时间: 2024-10-22 06:29:49

重新获取验证码的按钮的相关文章

简单的“获取验证码”的按钮功能实现

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; min-height: 17.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #853e64 }

clips 前端 js 倒计时 获取验证码的按钮

1 <a href="javascript:void(0);" onclick="get_captcha()" class="btn btn-default btn6" id="for_captcha" >获取验证码</a> 2 3 <script type="text/javascript"> 4 5 var url="/get-verify-code?pho

前端学习——ionic/AngularJs——获取验证码倒计时按钮

 按钮功能为:点击"获取验证码"--按钮不可用-设置倒计时-60秒后重新获取. 代码借鉴于:http://plnkr.co/edit/Swj82MpJSix3a47jZRHP?p=preview 主要实现原理:点击后,设置一个$interval,每一秒更改一次剩余时间,并依赖Angular数据绑定实时显示在页面中.设置一个$timeout,60秒后将按钮初始化到可用状态. 实现代码: (1)js代码,设置成一个directive以便多次调用. angular.module('winwi

对安卓获取验证码倒计时60秒Button按钮的简单封装

鉴于经常在注册获取验证码时候需要一个倒计时按钮觉得很麻烦,抽点时间写了一个TimeButton 键鼠下特性, TimeButton使用的时候跟普通Button一样没有冲突, TimeButton在倒计时的时候返回了如果没有超过剩下的时间再次进入会继续跑时哦, TimeButton里面完成了按钮的点击显示和倒计时逻辑, TimeButton在activity销毁后也会销毁不会像线程一样还在后台跑, TimeButton的显示文字和倒计时都可以自行设置当然也有默认的, 原创地址 http://wri

微信公众号申请页面获取验证码BUG

环境 操作系统: 浏览器: 网络:wifi 步骤 1.注册成功后,进入微信公众号 2.选择订阅号,下面的[选择并继续],点击确认 3.选择[个人]后,会让你填写个人信息 4.填写完姓名和身份证号码后,填写手机号后,[获取验证码]的按钮应该由灰色转为高亮,但是却没有,但是这个时候却可以点击,正确获取验证码. 频率 必现(3/3) 危害 轻微,反正不影响使用,但是用户体验较差,也不满足需求,因为当你点击获取,一分钟后的正常显示如下: 原因分析 JS对输入框的判断逻辑出现问题.

获取验证码倒计时优化 页面刷新实时倒计时

现在很多页面是需要获取验证码的,但是相信很多页面是没有做这样的优化的,比如下面这个场景: 现在访问一个注册页面,页面有一个填写手机号,获取验证码的按钮,点击获取验证码按钮之后,按钮变成灰色,然后是60倒计时效果.在60S内我无法再次点击获取验证码按钮.因为按钮是灰色的,不可点击状态. 但是,如果在倒计时任然进行时我刷新一下页面,一般的页面就会全部刷新,包括倒计时效果也没有了,按钮恢复到这最初可点击状态,这其实是不符合逻辑的.按正常逻辑是,页面任然倒计时,如果我刷新页面,倒计时任然存在,并且按钮不

微信小程序【获取验证码】倒计时效果

最近开始接触微信小程序,会记录一些相关的小功能--例如这次是点击[获取验证码]按钮出现的倒计时效果. 原文: http://blog.csdn.net/Wu_shuxuan/article/details/78539075  感谢 .wxml <button class="buttonget" disabled='{{disabled}}' data-id="2" bindtap="getVerificationCode"> {{ti

Angular.js 使用获取验证码按钮实现-倒计时

获取验证码界面效果如图: 需要实现以下逻辑 按钮不可选 --输入电话号码,按钮可选 --点击获取,进入倒计时,按钮不可选 --倒计时结束,回到初识状态 核心代码: var cd = 60; var toDo = function() { cd--; $scope.countDown = "重新获取 " + cd; }; $interval(toDo, 1000, 60); 完整代码: html: <form name="form" class="fo

js点击按钮获取验证码倒计时

//发送验证码倒计时 var clock = ''; var nums = 60; var btn; $("#btnGetVerCode").click(function () { var flag = true; var phoneNum = $("#txtPhoneNum").val(); if (phoneNum.length == 11 && /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(14[0-9