设为首页 加入收藏

TOP

【代码笔记】iOS-手机验证码(一)
2017-10-13 10:28:49 】 浏览:5758
Tags:代码 笔记 iOS- 手机 验证

一,效果图。

 

二,代码。

RootViewController.h

#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController

@end

 

RootViewController.m

复制代码
#import "RootViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController
{
    NSTimer* sysTimer;
    BOOL timeStart;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    //BOOL值默认为NO。
    NSLog(@"---timeStart--%d-----",timeStart);
    
    //发送验证码到手机上-Button
    UIButton *sendYZM=[UIButton buttonWithType:UIButtonTypeCustom];
    [sendYZM setFrame:CGRectMake(50, 100, 250, 50)];
    [sendYZM setBackgroundColor:[UIColor redColor]];
    [sendYZM setTitle:@"发送注册验证码到手机上" forState:UIControlStateNormal];
    [sendYZM setTitleColor:[UIColor colorWithRed:66/255.0 green:66/255.0 blue:221/255.0 alpha:1.0] forState:UIControlStateNormal];
    [sendYZM addTarget:self action:@selector(doClickButton:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:sendYZM];

}
-(void)doClickButton:(UIButton *)btn
{
    timeStart=YES;
    sysTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
    // 可以通过fire这个方法去触发timer,即使timer的firing time没有到达
    [sysTimer fire];
    [self getAuthCode];

}

//随时更新验证码发送的时间
- (void)timerFireMethod:(NSTimer *)timer

{
    //定义一个NSCalendar对象
    NSCalendar *cal = [NSCalendar currentCalendar];
    //初始化目标时间...
    NSDateComponents *endTime = [[NSDateComponents alloc] init];
    //得到当前时间
    NSDate *today = [NSDate date];
    NSDate *date = [NSDate dateWithTimeInterval:60 sinceDate:today];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *dateString = [dateFormatter stringFromDate:date];
    
    static int year;
    static int month;
    static int day;
    static int hour;
    static int minute;
    static int second;
    
    if(timeStart) {
        //从NSDate中取出年月日,时分秒,但是只能取一次
        year = [[dateString substringWithRange:NSMakeRange(0, 4)] intValue];
        month = [[dateString substringWithRange:NSMakeRange(5, 2)] intValue];
        day = [[dateString substringWithRange:NSMakeRange(8, 2)] intValue];
        hour = [[dateString substringWithRange:NSMakeRange(11, 2)] intValue];
        minute = [[dateString substringWithRange:NSMakeRange(14, 2)] intValue];
        second = [[dateString substringWithRange:NSMakeRange(17, 2)] intValue];
        timeStart = NO;
    }
    
    [endTime setYear:year];
    [endTime setMonth:month];
    [endTime setDay:day];
    [endTime setHour:hour];
    [endTime setMinute:minute];
    [endTime setSecond:second];
    
    //把目标时间装载入date
    NSDate *todate = [cal dateFromComponents:endTime];
    
    //用来得到具体的时差,是为了统一成北京时间
    unsigned int unitFlags = NSYearCalendarUnit| NSMonthCalendarUnit| NSDayCalendarUnit| NSHourCalendarUnit| NSMinuteCalendarUnit| NSSecondCalendarUnit;
    
    NSDateComponents *d = [cal components:unitFlags fromDate:today toDate:todate options:0];
    NSLog(@"--
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇最新cocoapods安装流程,安装过程.. 下一篇根据字符串链接_二维码生成

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目