最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS登錄時驗證手機號與倒計時發(fā)送驗證碼問題詳解

 更新時間:2019年01月21日 08:39:41   作者:誰遇而安  
這篇文章主要給大家介紹了關(guān)于iOS登錄時驗證手機號與倒計時發(fā)送驗證碼問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧

前言

我們做登錄的時候經(jīng)常會使用到,驗證手機號是否正確、向手機發(fā)送驗證碼倒計時60s的問題,我們改如何解決呢?讓我們一起來探討一下吧。

如下圖:

首先,我們先說說判斷手機號碼是否正確的問題吧,我的想法是給字符串添加一個分類,然后寫上這樣的代碼:

+ (BOOL)valiMobile:(NSString *)mobile{
        if (mobile.length != 11){
            //判斷手機號碼是否為11位
            return NO;
            }else{
                //使用正則表達式的方法來判斷手機號
/**
* 移動號段正則表達式
  */
                NSString *CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$";
/**
* 聯(lián)通號段正則表達式
*/
                 NSString *CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$";
/**
* 電信號段正則表達式
*/
                NSString *CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$";
//初始化NSPredicate對象
                NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM];
//與具體對象進行篩選判斷, 返回為BOOL值
                BOOL isMatch1 = [pred1 evaluateWithObject:mobile];
                NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM];
                BOOL isMatch2 = [pred2 evaluateWithObject:mobile];
                NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM];
            BOOL isMatch3 = [pred3 evaluateWithObject:mobile];
                if (isMatch1 || isMatch2 || isMatch3) {
                    return YES;
                    }else{
                return NO;
            }
        }
}

如果大家對于NSPredicate的用法有些疑問的話可以看看這篇文章:http://www.fzitv.net/article/155004.htm

下面再來說一說驗證碼倒計時的問題,

1、我給button創(chuàng)建了一個分類

2、設(shè)定button上的文字,并記錄倒計時的總時長,然后開一個定時器,并且關(guān)閉button的點擊事件

3、定時器中將總時間縮減,并且設(shè)置button的文字,然后做一個判斷,判斷時間是否歸為0,如果為0 就釋放定時器,然后設(shè)置button上的文字,然后打開用戶交互。

代碼如下:

.h文件中

#import@interface UIButton (BtnTime)

/**

按鈕倒計時的問題

@param countDownTime 倒計時的時間(分鐘)

*/

- (void)buttonWithTime:(CGFloat)countDownTime;

@end

.m文件中

#import "UIButton+BtnTime.h"
/** 倒計時的顯示時間 */
static NSInteger secondsCountDown;
/** 記錄總共的時間 */
static NSInteger allTime;
@implementation UIButton (BtnTime)
- (void)buttonWithTime:(CGFloat)countDownTime {
self.userInteractionEnabled = NO;
secondsCountDown = 60 * countDownTime;
allTime = 60 * countDownTime;
[self setTitle:[NSString stringWithFormat:@"%lds后重新獲取",secondsCountDown] forState:UIControlStateNormal];
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeFireMethod:) userInfo:nil repeats:YES];
}
-(void)timeFireMethod:(NSTimer *)countDownTimer{
//倒計時-1
secondsCountDown--;
//修改倒計時標簽現(xiàn)實內(nèi)容
[self setTitle:[NSString stringWithFormat:@"%lds后重新獲取",secondsCountDown] forState:UIControlStateNormal];
//當?shù)褂嫊r到0時,做需要的操作,比如驗證碼過期不能提交
if(secondsCountDown == 0){
[countDownTimer invalidate];
[self setTitle:@"重新獲取" forState:UIControlStateNormal];
secondsCountDown = allTime;
self.userInteractionEnabled = YES;
}
}
@end

代碼已經(jīng)上傳到github上去了,地址:https://github.com/zhangyqyx/Countdown (本地下載

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • IOS開發(fā)中加載大量網(wǎng)絡(luò)圖片優(yōu)化方法

    IOS開發(fā)中加載大量網(wǎng)絡(luò)圖片優(yōu)化方法

    這篇文章主要介紹了IOS開發(fā)中加載大量網(wǎng)絡(luò)圖片如何優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • iOS ScrollView嵌套tableView聯(lián)動滾動的思路與最佳實踐

    iOS ScrollView嵌套tableView聯(lián)動滾動的思路與最佳實踐

    這篇文章主要給大家介紹了關(guān)于ScrollView嵌套tableView聯(lián)動滾動的思路與最佳實踐,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-10-10
  • ios7中UIViewControllerBasedStatusBarAppearance作用詳解

    ios7中UIViewControllerBasedStatusBarAppearance作用詳解

    這篇文章主要介紹了 ios7中UIViewControllerBasedStatusBarAppearance作用詳解的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • iOS中金額字符串格式化顯示的方法示例

    iOS中金額字符串格式化顯示的方法示例

    這篇文章主要給大家介紹了關(guān)于iOS中金額字符串格式化顯示的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • IOS封裝自定義布局的方法

    IOS封裝自定義布局的方法

    這篇文章主要介紹了IOS封裝自定義布局的方法,需要的朋友可以參考下
    2016-01-01
  • iOS中關(guān)于Swift UICollectionView橫向分頁的問題

    iOS中關(guān)于Swift UICollectionView橫向分頁的問題

    這篇文章通過圖文并茂的形式給大家介紹UICollectionView橫向分頁的問題,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-05-05
  • iOS利用UIBezierPath + CAAnimation實現(xiàn)路徑動畫效果

    iOS利用UIBezierPath + CAAnimation實現(xiàn)路徑動畫效果

    在iOS開發(fā)中,制作動畫效果是最讓開發(fā)者享受的環(huán)節(jié)之一,這篇文章主要給大家介紹了關(guān)于iOS利用UIBezierPath + CAAnimation實現(xiàn)路徑動畫效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-10-10
  • iOS umeng 獲取deviceToken的方法

    iOS umeng 獲取deviceToken的方法

    下面小編就為大家分享一篇iOS umeng 獲取deviceToken的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • iOS實現(xiàn)波浪效果

    iOS實現(xiàn)波浪效果

    這篇文章主要為大家詳細介紹了iOS實現(xiàn)波浪效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • iOS WKWebView適配實戰(zhàn)篇

    iOS WKWebView適配實戰(zhàn)篇

    這篇文章主要介紹了iOS WKWebView適配實戰(zhàn)篇,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06

最新評論

车致| 朔州市| 南川市| 富川| 南通市| 阜新市| 平舆县| 黎川县| 洮南市| 吉首市| 南部县| 黔南| 平利县| 称多县| 特克斯县| 斗六市| 阜新市| 沅江市| 曲阳县| 元朗区| 庆城县| 满洲里市| 二连浩特市| 边坝县| 紫金县| 察雅县| 淳安县| 大埔县| 比如县| 潮安县| 昌乐县| 新源县| 莫力| 安吉县| 抚顺县| 环江| 勃利县| 电白县| 洞口县| 岗巴县| 安平县|