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];
}

如此就可实现设置手势密码的时候,上面显示出连接的点

上一篇下一篇

猜你喜欢

热点阅读