今天需求下來了需要自定義一個驗證碼輸入框,于是就開始思考用什么方式去實現(xiàn),效果圖要這樣的:
1871540282209_.pic.jpg
由于本人比較懶佳镜,所以不怎么喜歡用drawRect方法去畫線條。凡桥。所以一開始想著用6個label帶上邊框排列擺放蟀伸,后來發(fā)現(xiàn)邊框重合的問題沒法解決,所以無奈之下還是用了drawRect + 6個背景色為透明色的label來組合出這個UI缅刽。
下面的就是我自己封裝好的一個密碼輸入框啊掏,調(diào)用也只需要兩三行代碼即可,用于一般的小需求非常好用衰猛。而且demo很簡單迟蜜,又復(fù)雜的需求也可以自行去里面修改。
具體的思路也很簡單腕侄,就是通過一個隱藏的TextFiled來控制輸入的密碼小泉,然后相應(yīng)的在TextFiled的代理事件里面處理UI上的變化。
JXCPasswordView
使用方法
下載上面的項目冕杠,然后把JXCPasswordView的.h和.m文件拖到自己項目中
在需要使用的地方引入頭文件
#import "JXCPasswordView.h"
聲明屬性
@property (nonatomic,strong)JXCPasswordView *verCodeView;
確定密碼框?qū)挾?/p>
#define kCodeViewWidth [UIScreen mainScreen].bounds.size.width * 0.124 * 6
JXCPasswordView公共方法
/**
自定義初始化密碼框
@param frame frame
@param length 密碼長度
@param boldColor 密碼框的線條顏色
@return 密碼框
*/
- (instancetype)initWithFrame:(CGRect)frame andLength:(NSInteger)length andBoldColor:(UIColor *)boldColor;
/**
當(dāng)輸入密碼錯誤時微姊,清除原先的密碼
*/
- (void)cleanDatas;
在自己的場景中調(diào)用
- (void)setPswdView {
_verCodeView = [[JXCPasswordView alloc]initWithFrame:CGRectMake(([UIScreen mainScreen].bounds.size.width-kCodeViewWidth)/2, 300, kCodeViewWidth, kCodeViewWidth/6) andLength:6 andBoldColor:[UIColor blackColor]];
_verCodeView.backgroundColor = [UIColor whiteColor];
_verCodeView.delegate = self;
[self.view addSubview:_verCodeView];
}
實現(xiàn)代理方法
- (void)getPassWord:(NSString *)password {
NSLog(@"驗證碼:%@",password);
/**
在這里根據(jù)需求校驗輸入的密碼或者驗證碼是否正確
如果驗證失敗,則調(diào)用方法清除頁面
*/
// [_verCodeView cleanDatas];
}