仿支付宝手势密码头部小九宫格绘制

#pragma mark -绘制头部九宫格

-(void)drawRect:(CGRect)rect{

 

    //获取上下文

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    

    //设置属性

    CGContextSetLineWidth(ctx, CoreLockArcLineW);


    

    //新建路径

    CGMutablePathRef pathM =CGPathCreateMutable();

    CGFloat marginV = 3.f;

    CGFloat padding = 1.0f;

    CGFloat rectWH = (rect.size.width - marginV * 2 - padding*2) / 3;

    

 

    //添加圆形路径

    for (NSUInteger i=0; i<9; i++) {

        

        NSUInteger row = i % 3;

        NSUInteger col = i / 3;

        

        CGFloat rectX = (rectWH + marginV) * row + padding;

        

        CGFloat rectY = (rectWH + marginV) * col + padding;

        

        CGRect rect = CGRectMake(rectX, rectY, rectWH, rectWH);

        

        if (!_pathArray) {

            //设置线条颜色

            [CoreLockCircleLineNormalColor set];

            

            CGPathAddEllipseInRect(pathM, NULL, rect);

            continue;

        }

        

        if (![_pathArray containsObject:[NSString stringWithFormat:@"%ld",i]]) {

            //设置线条颜色

            [CoreLockCircleLineNormalColor set];

            

            CGPathAddEllipseInRect(pathM, NULL, rect);

        }

        

    }

    

    //添加路径

    CGContextAddPath(ctx, pathM);

    

//    //绘制路径

    CGContextStrokePath(ctx);


    //释放路径

    CGPathRelease(pathM);

    

    

    if (!_pathArray) {

        return;

    }


    CGMutablePathRef pathFillM =CGPathCreateMutable();

    //添加圆形路径

    for (NSUInteger i=0; i<9; i++) {

        

        NSUInteger row = i % 3;

        NSUInteger col = i / 3;

        

        CGFloat rectX = (rectWH + marginV) * row + padding;

        

        CGFloat rectY = (rectWH + marginV) * col + padding;

        

        CGRect rect = CGRectMake(rectX, rectY, rectWH, rectWH);

        

        if ([_pathArray containsObject:[NSString stringWithFormat:@"%ld",i]]) {

            //设置线条颜色

            [CoreLockCircleLineSelectedColor set];

            

            CGPathAddEllipseInRect(pathFillM, NULL, rect);

        }

        

    }

    

    //添加路径

    CGContextAddPath(ctx, pathFillM);

    

    //绘制实心圆

    CGContextFillPath(ctx);

    

    //释放路径

    CGPathRelease(pathFillM);


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值