美文网首页
iOS手势验证

iOS手势验证

作者: 大白菜s | 来源:发表于2017-06-29 14:27 被阅读45次
    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];
    }
    

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

    相关文章

      网友评论

          本文标题:iOS手势验证

          本文链接:https://www.haomeiwen.com/subject/nxqmcxtx.html