iOS 剪裁View,自定义边框

385 阅读1分钟

View 剪裁成正方形

‘’‘

- (void)MaskrView:(UIView*)returnView{UIBezierPath * maskPath = [UIBezierPath bezierPath];CGPoint leftTop = CGPointMake(0, 0);CGPoint rightTop = CGPointMake(0, 0);CGPoint leftBottom = CGPointMake(0, 0);CGPoint rightBottom = CGPointMake(0, 0);// 比较宽CGFloat returnW = 0;if(viewW > viewH){    returnW = viewH;leftTop = CGPointMake((viewW-viewH)/2, 0);    rightTop = CGPointMake((viewW-viewH)/2 + viewH, 0);    leftBottom = CGPointMake((viewW-viewH)/2, viewH);    rightBottom = CGPointMake((viewW-viewH)/2 + viewH,viewH);}else{    returnW = viewW;    leftTop = CGPointMake(0, (viewH-viewW)/2);    rightTop = CGPointMake(viewW , (viewH-viewW)/2);    leftBottom = CGPointMake(0, (viewH-viewW)/2 + viewW);    rightBottom = CGPointMake(viewW ,(viewH-viewW)/2 + viewW);}//[maskPath moveToPoint:leftTop];[maskPath addLineToPoint:rightTop];[maskPath addLineToPoint:leftBottom];//[maskPath moveToPoint:rightBottom];[maskPath addLineToPoint:leftBottom];[maskPath addLineToPoint:rightTop];CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];maskLayer.path = maskPath.CGPath;returnView.layer.mask = maskLayer;// 剪切成正方形[returnView maskView];}

’‘’

人脸识别添加四周识别框

- (void)addedBorderToView:(UIView*)view{
//    
view.layer.borderColor=[[UIColor redColor] CGColor];
//    
view.layer.borderWidth = 1;
        
    for(CAShapeLayer *layer in view.layer.sublayers){
        [layer removeFromSuperlayer];
    }
    
    UIBezierPath * bezierPath = [UIBezierPath bezierPath];
    CGFloat bezierW = 20.0;
    CGFloat bezierH = 20.0;
    
    CGFloat viewW = view.frame.size.width;
    CGFloat viewH = view.frame.size.height;
    
//    NSLog(@"viewW:%f viewH:%f",viewW,viewH);
    
    // 左上角
    [bezierPath moveToPoint:CGPointMake(bezierW, 0.0f)];
    [bezierPath addLineToPoint:CGPointMake(0.0f, 0.0f)];
    [bezierPath moveToPoint:CGPointMake(0.0f, bezierH)];
    [bezierPath addLineToPoint:CGPointMake(0.0f, 0.0f)];

    // 右上角
    [bezierPath moveToPoint:CGPointMake(0, 0)];
    [bezierPath moveToPoint:CGPointMake(viewW-bezierW, 0)];
    [bezierPath addLineToPoint:CGPointMake(viewW, 0.0f)];
    [bezierPath moveToPoint:CGPointMake(viewW, bezierH)];
    [bezierPath addLineToPoint:CGPointMake(viewW, 0.0f)];
    
    // 左下角
    [bezierPath moveToPoint:CGPointMake(0.0f, viewH-bezierH)];
    [bezierPath addLineToPoint:CGPointMake(0.0f, viewH)];
    [bezierPath moveToPoint:CGPointMake(bezierW,viewH)];
    [bezierPath addLineToPoint:CGPointMake(0.0f, viewH)];

    // 右下角
    [bezierPath moveToPoint:CGPointMake(viewW-bezierW, viewH)];
    [bezierPath addLineToPoint:CGPointMake(viewW, viewH)];
    [bezierPath moveToPoint:CGPointMake(viewW, viewH-bezierH)];
    [bezierPath addLineToPoint:CGPointMake(viewW, viewH)];
    
    CAShapeLayer * shapeLayer = [CAShapeLayer layer];
    shapeLayer.strokeColor = [UIColor greenColor].CGColor;
    shapeLayer.fillColor  = [UIColor clearColor].CGColor;
    /// 添加路径
    shapeLayer.path = bezierPath.CGPath;
    /// 线宽度
    shapeLayer.lineWidth = 1;
      
    [view.layer addSublayer:shapeLayer];
    
}