美文网首页
iOS 方形虚线的实现

iOS 方形虚线的实现

作者: 风沙搁浅的希望 | 来源:发表于2017-11-20 17:09 被阅读18次

项目中经常有虚线的需求,现整理一部分,不足之处再修改

方形虚线:

/**

** lineView:      需要绘制成方形虚线的view

** lineLength:    虚线的宽度

** lineSpacing:  虚线的间距

** lineColor:     虚线的颜色

**/


-(void)drawSquareDottedLine:(UIView*)squareView lineLength:(int)lineLength lineSpacing:(int)lineSpacing lineColor:(UIColor*)lineColor

{

CAShapeLayer *border = [CAShapeLayer layer];

border.strokeColor = lineColor.CGColor;

border.fillColor = nil;

border.path = [UIBezierPath bezierPathWithRect:squareView.bounds].CGPath;

border.frame = squareView.bounds;

border.lineWidth = 1.0f;

border.lineCap = @"square";

border.lineDashPattern = @[@(lineLength), @(lineSpacing)];

[squareView.layer addSublayer:border];

}

虚线:

/**

** lineView:      需要绘制成虚线的view

** lineLength:  虚线的宽度

** lineSpacing: 虚线的间距

** lineColor:     虚线的颜色

**/

- (void)drawDashLine:(UIView *)lineView lineLength:(int)lineLength lineSpacing:(int)lineSpacing lineColor:(UIColor *)lineColor

{

CAShapeLayer *shapeLayer = [CAShapeLayer layer];

[shapeLayer setBounds:lineView.bounds];

[shapeLayer setPosition:CGPointMake(CGRectGetWidth(lineView.frame) / 2, CGRectGetHeight(lineView.frame))];

[shapeLayer setFillColor:[UIColor clearColor].CGColor];

//  设置虚线颜色为blackColor

[shapeLayer setStrokeColor:lineColor.CGColor];

//  设置虚线宽度

[shapeLayer setLineWidth:CGRectGetHeight(lineView.frame)];

[shapeLayer setLineJoin:kCALineJoinRound];

//  设置线宽,线间距

[shapeLayer setLineDashPattern:[NSArray arrayWithObjects:[NSNumber numberWithInt:lineLength], [NSNumber numberWithInt:lineSpacing], nil]];

//  设置路径

CGMutablePathRef path = CGPathCreateMutable();

CGPathMoveToPoint(path, NULL, 0, 0);

CGPathAddLineToPoint(path, NULL, CGRectGetWidth(lineView.frame), 0);

[shapeLayer setPath:path];

CGPathRelease(path);

//  把绘制好的虚线添加上来

[lineView.layer addSublayer:shapeLayer];

}

相关文章

网友评论

      本文标题:iOS 方形虚线的实现

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