iOS手势验证
2017-06-29 本文已影响45人
大白菜s
CoreLock:https://github.com/CharlinFeng/CoreLock
最近需要要增加手势密码,网上查到了上边的库,膜拜,站在巨人的肩膀上编程,减少了不小的工作量。
需求新增一个在设置手势密码的时候,上面小详情View显示出连接的点
QQ20170629-140601-HD.gif
看了大神的源码,只需要稍微改动就可实现
搜索这个 <b>setPWFirstRightBlock </b>
//添加一个字符串参数用来传递密码
void (^setPWFirstRightBlock)(NSString *pwd);
// 回调的时候把密码带上
_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){
//设置线的颜色
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);
//填充当前绘画区域内的颜色
[[UIColor orangeColor] set];
//填充(沿着矩形内围填充出指定大小的圆)
CGContextFillPath(ctx);
}
}
}
在VC密码重置方法中
-(void)setPwdReset{
//增加两行
self.lockInfoView.pwd = @"";
[self.lockInfoView setNeedsDisplay];
}
如此就可实现设置手势密码的时候,上面显示出连接的点