iOS開(kāi)發(fā) - 圓形驗(yàn)證碼(或密碼)輸入框的封裝

項(xiàng)目中用到了圓形驗(yàn)證碼輸入框,輸入框之間要求有一定的距離,UI圖如下:

UI圖
  • 上面的UI圖主要有以下幾個(gè)要求:
    • 輸入框?yàn)閳A形
    • 輸入框之間有適當(dāng)距離
    • 輸入框顏色在輸入文本時(shí)有變化

剛開(kāi)始想著用固定的幾個(gè) UITextField 實(shí)現(xiàn),但轉(zhuǎn)念一想,用 UITextField 實(shí)現(xiàn)有點(diǎn)麻煩(輸入框多的話,它們之間的響應(yīng)事件不太容易控制,需要來(lái)回變換),于是開(kāi)始想其它辦法,最后用了以下的思路:

  • 創(chuàng)建一個(gè) UITextField,用 UILabel 顯示 UITextField 上輸入的數(shù)字,需要監(jiān)聽(tīng)文本的輸入,同時(shí)對(duì) UILabel 進(jìn)行一些操作,再用 block 將輸入的文本傳出來(lái)。
封裝的圓形輸入框主要實(shí)現(xiàn)了以下功能:輸入框的數(shù)量、距離、顏色、大小等都可以自行設(shè)定,用起來(lái)也很方便,只需以下幾行代碼即可:
    NNValidationCodeView *view = [[NNValidationCodeView alloc] initWithFrame:CGRectMake(80, 100, 300, 45) andLabelCount:4 andLabelDistance:10];
    [self.view addSubview:view];
    view.changedColor = [UIColor yellowColor];
    view.codeBlock = ^(NSString *codeString) {
        NSLog(@"驗(yàn)證碼:%@", codeString);
    };

這是 demo 的效果圖:

效果圖1
效果圖2

由于代碼很容易看懂,另外代碼中也寫(xiě)了注釋,因此這里不再對(duì)項(xiàng)目做過(guò)多的陳述,這是 demo地址,需要的話可以拿去借鑒,有什么不足之處希望能留下寶貴意見(jiàn)或建議!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這世上存在許許多多的弱勢(shì)群體,他們飽受著煎熬。 讓我感觸頗深的就是我身邊發(fā)生的事...
    對(duì)影成雙丹閱讀 467評(píng)論 3 2
  • 世界上最遙遠(yuǎn)的距離,那是在你轉(zhuǎn)身后,我眼淚墜落的軌跡。
    玉翼嬋娟閱讀 145評(píng)論 0 0
  • 畢業(yè)一年的時(shí)候,某一次跟才子聊天,他說(shuō):“才子還真的一點(diǎn)都沒(méi)變啊……”我疑惑地問(wèn)他具體指什么,他說(shuō):“我啊,從一個(gè)...
    玉妃說(shuō)閱讀 810評(píng)論 0 1

友情鏈接更多精彩內(nèi)容