CoreLock:https://github.com/CharlinFeng/CoreLock
最近需要要增加手勢(shì)密碼沸停,網(wǎng)上查到了上邊的庫(kù)力图,膜拜爽篷,站在巨人的肩膀上編程周蹭,減少了不小的工作量。
需求新增一個(gè)在設(shè)置手勢(shì)密碼的時(shí)候骄蝇,上面小詳情View顯示出連接的點(diǎn)
QQ20170629-140601-HD.gif
看了大神的源碼膳殷,只需要稍微改動(dòng)就可實(shí)現(xiàn)
搜索這個(gè) <b>setPWFirstRightBlock </b>
//添加一個(gè)字符串參數(shù)用來(lái)傳遞密碼
void (^setPWFirstRightBlock)(NSString *pwd);
// 回調(diào)的時(shí)候把密碼帶上
_setPWFirstRightBlock(self.firstRightPWD )
在VC事件方法中
/** 第一次輸入密碼:正確 */
self.lockView.setPWFirstRightBlock = ^(NSString *pwd){
//lockInfoView重畫
self.lockInfoView.pwd = pwd;
[self.lockInfoView setNeedsDisplay];
[self.label showNormalMsg:CoreLockPWDTitleConfirm];
};
在CLLockInfoView類中
-(void)drawRect:(CGRect)rect{
//增加代碼
if(self.pwd.length>0){
//設(shè)置線的顏色
CGContextSetStrokeColorWithColor(ctx, [UIColor redColor].CGColor);
CGFloat rectWH1 = rectWH-4;
CGFloat marginV1 = marginV+4.f;
CGFloat padding1 = padding+2.0f;
for (NSUInteger i= 0; i<self.pwd.length; i++) {
int b = [[self.pwd substringWithRange:NSMakeRange(i,1)] intValue];
NSUInteger row = b % 3;
NSUInteger col = b / 3;
CGFloat rectX = (rectWH1 + marginV1) * row + padding1;
CGFloat rectY = (rectWH1 + marginV1) * col + padding1;
CGRect rect = CGRectMake(rectX, rectY, rectWH1, rectWH1);
CGContextAddEllipseInRect(ctx, rect);
//填充當(dāng)前繪畫區(qū)域內(nèi)的顏色
[[UIColor orangeColor] set];
//填充(沿著矩形內(nèi)圍填充出指定大小的圓)
CGContextFillPath(ctx);
}
}
}
在VC密碼重置方法中
-(void)setPwdReset{
//增加兩行
self.lockInfoView.pwd = @"";
[self.lockInfoView setNeedsDisplay];
}
如此就可實(shí)現(xiàn)設(shè)置手勢(shì)密碼的時(shí)候操骡,上面顯示出連接的點(diǎn)