- (void)addBorderDashLine:(CGFloat)width {
NSArray *patten = @[@15, @11];
[self addDashLineWithStartPoint:CGPointMake(0, 0)
endPoint:CGPointMake(0, self.frame.size.height)
lineWidth:width
pattern:patten];
[self addDashLineWithStartPoint:CGPointMake(0, 0)
endPoint:CGPointMake(self.frame.size.width, 0)
lineWidth:width
pattern:patten];
[self addDashLineWithStartPoint:CGPointMake(0, self.frame.size.height)
endPoint:CGPointMake(self.frame.size.width, self.frame.size.height)
lineWidth:width
pattern:patten];
[self addDashLineWithStartPoint:CGPointMake(self.frame.size.width, 0)
endPoint:CGPointMake(self.frame.size.width, self.frame.size.height)
lineWidth:width
pattern:patten];
}
- (void)addHorizontalDashLine {
[self addDashLineWithStartPoint:CGPointMake(0, 0)
endPoint:CGPointMake(self.frame.size.width, 0)
lineWidth:0.5
pattern:@[@6, @3]];
}
- (void)addPortraitDashLine {
[self addDashLineWithStartPoint:CGPointMake(0, 0)
endPoint:CGPointMake(0, self.frame.size.height)
lineWidth:0.5
pattern:@[@6, @3]];
}
- (void)addDashLineWithStartPoint:(CGPoint)start
endPoint:(CGPoint)end
lineWidth:(CGFloat)width
pattern:(NSArray<NSNumber *> *)pattern {
CAShapeLayer *border = [CAShapeLayer layer];
// 线条颜色
border.strokeColor = [UIColor whiteColor].CGColor;
border.fillColor = nil;
UIBezierPath *pat = [UIBezierPath bezierPath];
[pat moveToPoint:start];
[pat addLineToPoint:end];
border.path = pat.CGPath;
border.frame = self.bounds;
// 不要设太大 不然看不出效果
border.lineWidth = width;
border.lineCap = @"butt";
// 第一个是 线条长度 第二个是间距 nil时为实线
border.lineDashPattern = pattern;
[self.layer addSublayer:border];
}
使用
[borderView addBorderDashLine:4];