亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > iOS > 正文

詳解iOS 驗(yàn)證碼輸入的實(shí)現(xiàn)思路

2019-10-21 18:39:26
字體:
供稿:網(wǎng)友

iOS,驗(yàn)證碼

如圖所示,現(xiàn)在很多App采用了類似下劃線、方塊等方式的驗(yàn)證碼輸入,直觀美觀!對(duì)于這種效果的實(shí)現(xiàn)方式,大概有以下幾種方式:

1.多個(gè)UITextField組成

這種方式好處是有光標(biāo)閃爍、但是在處理刪除和動(dòng)畫效果時(shí),就會(huì)顯得有點(diǎn)笨拙,OFO應(yīng)該是這樣實(shí)現(xiàn)的,要嚴(yán)格處理好每個(gè)UITextField的FirstResponder。

2.一個(gè)UITextField組成,使用富文本

這個(gè)方式是可行的, 使用富文本設(shè)置每個(gè)字符的間距,允許編輯富文本,有光標(biāo)閃爍,缺點(diǎn)應(yīng)該也是不好處理動(dòng)畫效果。

3.使用UIView繪制

這個(gè)是我在GitHub上看到的一個(gè)半成品Demo,利用一個(gè)UIView,使用Quartz 2D和UIBezierPath進(jìn)行繪制文本和下劃線,并處理輸入事件和鍵盤事件,其實(shí)整體下來代碼也不多,300行以內(nèi),但是需要較好的iOS繪制功底。

4.一個(gè)UITextField和多個(gè)UILabel

這個(gè)是我接下來介紹的思路,這個(gè)思路的缺點(diǎn)應(yīng)該是沒有光標(biāo)閃爍,其實(shí)也能偽實(shí)現(xiàn),看是否必須要有這個(gè)需要了。這個(gè)思路比較簡單,方便加入動(dòng)畫,純粹下來就100多行,接下來看結(jié)構(gòu)和代碼:

iOS,驗(yàn)證碼

新建一個(gè)UIView,初始化方法

- (instancetype)initWithCount:(NSInteger)count margin:(CGFloat)margin{  if (self = [super init]) {    self.itemCount = count; // itemCount是驗(yàn)證碼的個(gè)數(shù),比如6個(gè)    self.itemMargin = margin; // itemMargin是每個(gè)Label之間的間距    [self configTextField];  }  return self;}

添加內(nèi)部子控件(演示)

- (void)configTextField{  UITextField *textField = [[UITextField alloc] init];  textField.autocapitalizationType = UITextAutocapitalizationTypeNone;  textField.keyboardType = UIKeyboardTypeNumberPad;  [textField addTarget:self action:@selector(tfEditingChanged:) forControlEvents:(UIControlEventEditingChanged)];  // 小技巧:這個(gè)屬性為YES,可以強(qiáng)制使用系統(tǒng)的數(shù)字鍵盤,缺點(diǎn)是重新輸入時(shí),會(huì)清空之前的內(nèi)容  // clearsOnBeginEditing 屬性并不適用于 secureTextEntry = YES 時(shí)  // textField.secureTextEntry = YES;  [self addSubview:textField];  self.textField = textField;  // 小技巧:通過textField上層覆蓋一個(gè)maskView,可以去掉textField的長按事件  UIButton *maskView = [UIButton new];  maskView.backgroundColor = [UIColor whiteColor];  [maskView addTarget:self action:@selector(clickMaskView) forControlEvents:(UIControlEventTouchUpInside)];  [self addSubview:maskView];  self.maskView = maskView;  for (NSInteger i = 0; i < self.itemCount; i++)  {    UILabel *label = [UILabel new];    [self addSubview:label];    [self.labels addObject:label];  }  for (NSInteger i = 0; i < self.itemCount; i++)  {    UIView *line = [UIView new];    [self.lines addObject:line];  }}

這里可能對(duì)maskView有點(diǎn)費(fèi)解,maskView主要是為了擋住下面的UITextField,使用類UIButton是為了擋住事件,因?yàn)槿绻褂妙怳IView,會(huì)將事件傳遞到self,進(jìn)而影響到外面隱藏鍵盤的代碼,你可以試試就知道了。

主要處理業(yè)務(wù)邏輯的代碼

#pragma mark - 編輯改變- (void)tfEditingChanged:(UITextField *)textField{  if (textField.text.length > self.itemCount) {    textField.text = [textField.text substringWithRange:NSMakeRange(0, self.itemCount)];  }  for (int i = 0; i < self.itemCount; i++)  {    UILabel *label = [self.labels objectAtIndex:i];    if (i < textField.text.length) {      label.text = [textField.text substringWithRange:NSMakeRange(i, 1)];    } else {      label.text = nil;    }  }  // 輸入完畢后,自動(dòng)隱藏鍵盤  if (textField.text.length >= self.itemCount) {    [textField resignFirstResponder];  }}

這里沒有使用UITextField的delegate,使用UIControlEventEditingChanged足以,但是如果你的需求能輸入英文等其他字符,就需要實(shí)現(xiàn)delegate去限制。

至此,驗(yàn)證碼輸入的核心代碼就沒有了,是不是感覺這么少??!在此基礎(chǔ)上,我用Demo實(shí)現(xiàn)了3個(gè)基本效果,如圖所示:

iOS,驗(yàn)證碼

Github代碼地址: 點(diǎn)我

小技巧Tip

當(dāng)你不想讓別人使用某個(gè)方法時(shí),除了私有方法辦法之外,還可以這么做:

- (instancetype)init UNAVAILABLE_ATTRIBUTE;+ (instancetype)new UNAVAILABLE_ATTRIBUTE;

 

總結(jié)

以上所述是小編給大家介紹的iOS 驗(yàn)證碼輸入的實(shí)現(xiàn)思路,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VEVB武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品扒开腿做爽爽| 亚洲av无码一区二区三区dv| 亚洲免费观看视频| 亚洲成人福利视频| 97人人爽人人澡人人精品| 96pao国产成视频永久免费| 丁香六月综合激情| 天天干视频在线观看| 国产又黄又爽免费视频| 欧美x0x0| 亚洲欧洲精品一区二区| 神马一区二区影院| 欧美日韩在线播放视频| 97热在线精品视频在线观看| 国产又粗又猛又爽又黄的视频一| 亚洲二区av| 亚洲欧美日韩中文在线| 国产精品免费一区二区三区观看| 免费网站黄在线观看| 日韩欧美高清视频| 国产在线|日韩| 欧美日韩中文字幕在线播放| avtt天堂资源网| 欧美日韩欧美一区二区| 欧美成人a在线| 日本xxxxxx| 永久免费黄色片| caopeng视频| 免费黄色国产视频| 91精品国产777在线观看| www.日日操| 麻豆精品国产自产在线| 日韩av影视在线| 男人的天堂在线播放| 天堂一区二区在线免费观看| 成人黄色激情视频| 精品999在线播放| 国产树林野战在线播放| 国产专区精品| 国产精品日韩精品欧美精品| 久久久久久久久91| 日本精品国产| 成人日韩视频| 国产成人精品久久二区二区91| 欧美日韩精品欧美日韩精品一| 亚洲视频网站在线观看| 91中文字幕| 五月天婷婷在线观看视频| 影音先锋另类| 亚洲国产中文字幕在线观看| 日韩av综合| 2014亚洲片线观看视频免费| 欧美黄色aaaa| 在线观看日韩羞羞视频| 无码免费一区二区三区| 国产老女人乱淫免费| 在线免费观看电影网站入口| 欧美成人一区二区三区片免费| 福利精品在线| 欧美日韩亚洲综合一区二区三区激情在线| 香蕉视频在线免费看| 日本亚洲欧洲色α| 国产日产一区二区三区| 欧美一区二区三区免费大片| 国产三区在线视频| 九色视频在线观看免费播放| 亚洲精品成人久久| 91国产视频在线观看| 欧美激情精品久久久久久| 亚洲精品不卡| 丰满亚洲少妇av| 91沈先生作品| 欧美a级一区二区| www.国产精| 在线播放亚洲一区| 一区二区精品伦理...| av电影在线观看网站| 乡村艳史在线观看| 999精品一区| 国产视频欧美| 国产女人18毛片水18精| 91午夜在线观看| 天堂蜜桃91精品| 国产一区在线免费观看| 国产嫩草一区二区三区在线观看| 久久久91精品国产一区不卡| 亚洲日韩中文字幕在线播放| 美女视频a黄免费| 国产精品日韩欧美大师| 国产一起色一起爱| 欧美一级片免费在线| 99.玖玖.com| 女人扒开屁股爽桶30分钟| 9191国语精品高清在线| 在线一区二区三区四区五区| 国产乱子夫妻xx黑人xyx真爽| 精品久久久久亚洲| 成人短剧在线观看| 草草地址线路①屁屁影院成人| 欧美激情国产精品免费| 欧美久久精品午夜青青大伊人| 久久久免费精品| 丝瓜app色版网站观看| 国产精品久久久久久麻豆一区软件| 性感av在线播放| 日本视频在线观看一区二区三区| 国产福利小视频| 爱福利视频一区| 欧美h版电影| 久久久久亚洲av成人网人人软件| 亚洲美女屁股眼交| 91人妻一区二区| 精品视频在线观看日韩| 久久美女高清视频| 亚洲精品三级| 福利小视频在线观看| 色哟哟精品观看| 国产精品久久久久久| 美女洗澡无遮挡| 东京热av一区| 亚洲人成人一区二区三区| 欧美猛交ⅹxxx乱大交视频| 亚洲网站在线观看| 久久精品国亚洲| 国产精品亚洲综合一区在线观看| 婷婷六月天丁香| 五月天久久777| 国产精品日本欧美一区二区三区| 欧美性淫爽ww久久久久无| 1024精品一区二区三区| chinese国产精品| 亚洲欧美日韩高清在线| 看全色黄大色大片| 精品成人av一区| 综合136福利视频在线| 日本午夜精品视频| 日本在线免费网| 久草视频在线观| 成人免费福利片| 97超超碰碰| 欧美与黑人午夜性猛交久久久| 久久久99爱| 亚洲永久av| 韩国av在线免费观看| 国产精品视频最多的网站| 强制高潮抽搐sm调教高h| 国产精品久久毛片| 强制捆绑调教一区二区| 3d蒂法精品啪啪一区二区免费| 亚洲美女久久久| 国产精品黄页免费高清在线观看| 国产午夜精品久久久久久久久| 中文在线a√在线8| 国偷自产视频一区二区久| 欧美国产专区| 中文字幕成人精品久久不卡| 在线成人一区二区| 麻豆福利在线观看| 亚洲国产精品久久91精品| 日韩在线视频观看正片免费网站| 潘金莲一级淫片aaaaa免费看| 国产精品久久毛片a| 姬川优奈aav一区二区| 蜜臀a∨国产成人精品| 麻豆久久久av免费| 国产精品人人人人| 日韩乱码一区二区三区| 午夜爱爱毛片xxxx视频免费看| 亚洲最新免费视频| 精品无码人妻一区二区三| 无码精品一区二区三区在线| 色吊丝在线永久观看最新版本| 狠狠色噜噜狠狠狠888奇米| 欧美成人三级在线| 国模娜娜一区二区三区| 日本va欧美va瓶| 欧美激情第一页在线观看| 国产麻豆一精品一av一免费| 国产激情99| 国产凹凸在线观看一区二区| 亚洲精品高清无码视频| 一本之道在线视频| 日韩av电影在线免费播放| 国产精彩自拍| 亚洲天堂二区| 国产精品久久久久永久免费观看| 日韩激情免费| 国产手机精品视频| 蜜桃91在线| va亚洲va日韩不卡在线观看| 人妻少妇精品无码专区| 日韩国产欧美视频| 韩国主播福利视频一区二区三区| 最近中文字幕免费mv| 欧美日韩一级在线观看| 国产精品美女在线播放| 在线精品日韩| 欧美激情欧美| 日本韩国在线视频爽| 日韩三级视频在线观看| 草裙成人精品一区二区三区| 九九亚洲精品| 最近97中文超碰在线| 欧美91在线|欧美| 久一视频在线观看| 日韩国产精品大片| 青青在线视频免费观看| 日产精品久久久久久久蜜臀| 欧美亚洲伦理www| 精品日本高清在线播放| 亚洲精品www久久久| 久久久久久久久97黄色工厂| 久久久高清视频| 亚洲精品日韩综合观看成人91| www激情久久| 蜜臀av性久久久久av蜜臀妖精| 免费视频观看成人| 激情综合激情| 国产精品久久波多野结衣| h视频在线观看免费完整版| 国产+成+人+亚洲欧洲自线| 国产精品视频第一区二区三区| 免费看欧美一级片| 国语精品一区| 日日爽夜夜爽| 又黄又爽的视频在线观看| 在线精品国精品国产尤物884a| 春意影院在线| 国产一区玩具在线观看| 裸体免费网站| 影音先锋制服丝袜| 欧美tickling挠脚心丨vk| 天天做夜夜做人人爱精品| 先锋影音av321| 国产福利精品一区二区三区| 日韩av二区在线播放| 欧美黄色小视频| 久久一区欧美| 欧美粗暴性video| 亚洲男人的天堂在线视频| 久热久热免费视频中文字幕777| 国产精品99精品一区二区三区∴| 亚洲伦理一区二区三区| 黄色的电影在线-骚虎影院-骚虎视频| 26uuu国产| 色婷婷av一区二区三区在线观看| 懂色av一区二区三区在线播放| 日韩无码精品一区二区三区| 国产美女免费看| 韩国三级成人在线| 黑人巨大精品欧美黑白配亚洲| 国产精品视频一区二区三| 9l视频白拍9色9l视频| 无码人妻丰满熟妇区bbbbxxxx| 99在线看视频| 亚洲人成影视在线观看| 新91视频在线观看| 久久久久久香蕉| 91桃色在线观看| 久久精品视频免费观看| 国产欧美日韩视频在线观看| 午夜一区二区三区在线观看| 日韩区一区二| 国产色播av在线| 日韩在线中文字| 97se视频在线观看| 美日韩一区二区| 在线观看亚洲电影| 欧美国产91| 香蕉久久夜色精品国产更新时间| h网站在线播放| 国产欧美精品日韩| 国产精品刘玥久久一区| 九色在线网站| 国产精品一区二区免费看| heyzo在线欧美播放| 欧美 日韩 国产 成人 在线| 69xxx免费视频| 欧美日韩精品久久| 免费av福利| 黄色一级片av| 日韩欧美一区二区免费| 男人天堂2017| 国产香蕉精品视频一区二区三区| 国产一级在线免费观看| 99视频有精品高清视频| 黄页在线观看视频| 国产精品一区二区三区99| 日韩影视在线| 欧美日韩另类字幕中文| 欧美亚洲爱爱另类综合| 国产探花在线观看视频| 亚洲精品免费播放| caoporm在线视频| 国产日产欧美一区二区三区| 欧美mv日韩mv| 久色乳综合思思在线视频| 国内精品不卡一区二区三区| www.18av.com| 亚洲高清视频在线观看| 亚洲国产三级| 亚洲在线视频观看| 欧美一级理论性理论a| 最新亚洲伊人网| 亚洲精品白虎| 精品国产乱码久久久久久1区二区| 免费性色视频| 天天操天天干天天综合网| 午夜在线a亚洲v天堂网2018| 亚洲一二三区精品| 影音先锋男人资源站在线观看| 夜夜嗨av一区二区三区四季av| 国产精品v日韩精品v在线观看| 男人的天堂日韩| 欧美国产日韩免费| 国产极品在线播放| 九九在线观看视频| 久久99国产精品自在自在app| 欧美国产精品一二三| 成人精品免费看| 亚洲日韩第一页| 亚洲人成网77777色在线播放| 中文字幕一区二区三区人妻电影| 日韩中文字幕区一区有砖一区| 亚洲国产精久久久久久| 国产在线欧美日韩| 日本精品免费一区二区三区| 亚洲精品久久久久|