- (void)viewDidLoad {
[super viewDidLoad];
UIView * view = [[UIView alloc]init];
[self.view addSubview:view];
_view = view;
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.offset = 100;
make.width.offset =100;
make.centerX.offset = 0;
make.height.offset = 2;
}];
[self.view layoutIfNeeded];
[self drawDashLine:view lineLength:10 lineSpacing:5 lineColor:UIColor.redColor];
}
//画虚线
- (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]];
// shapeLayer setLineDashPattern:<#(NSArray<NSNumber *> * _Nullable)#>
// 设置路径
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddLineToPoint(path, NULL, CGRectGetWidth(lineView.frame), 0);
[shapeLayer setPath:path];
CGPathRelease(path);
// 把绘制好的虚线添加上来
[lineView.layer addSublayer:shapeLayer];
}
效果图
Simulator Screen Shot - iPhone 13 - 2021-12-01 at 09.27.47.png
网友评论