iOS画虚线------
直接上代码了
// 画虚线
// 创建一个imageView 高度是你想要的虚线的高度 一般设为2
UIImageView *lineImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, kScreenWidth, 1)];
// 调用方法 返回的iamge就是虚线
[self drawDashLine:lineImg lineLength:4 lineSpacing:3 lineColor:GCOLOR];
// lineImg.backgroundColor = GCOLOR;
// 添加到控制器的view上
[self addSubview:lineImg];
self.lineImg = lineImg;
[lineImg mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(@0);
make.top.equalTo(staImg.mas_bottom).offset(5);
make.height.mas_equalTo(@1);
}];
/**
** 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];
// 设置虚线颜色为
[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];
}
还没有评论,来说两句吧...