有时项目中页面设计遇到虚线…虚线怎么绘制呢?代码是这样的
绘制虚线代码示例——亲测!好用
#pragma mark - 绘制虚线具体方法
+ (
void)drawDashLine:(UIView *)lineView lineLength:(NSInteger)lineLength lineSpacing:(NSInteger)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];
[shapeLayer setStrokeColor:lineColor.CGColor];
[shapeLayer setLineWidth:CGRectGetHeight(lineView.frame)];
[shapeLayer setLineJoin:kCALineJoinRound];
[shapeLayer setLineDashPattern:[NSArray arrayWithObjects:[NSNumber numberWithLong:lineLength], [NSNumber numberWithLong: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];
}
此方法可以作为 UIView 的拓展方法(Category)方便以后使用。
Example:
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(
20,
60, self.view.size.width -
2 *
20,
2)];
[self.view addSubview:lineView];
[UIView drawDashLine:lineView lineLength:
10 lineSpacing:
10 lineColor:[UIColor grayColor]];
Result:
如下图显示: