您的位置:首页 > 移动开发 > IOS开发

iOS 开发之绘制虚线

2017-05-06 11:10 375 查看

有时项目中页面设计遇到虚线…虚线怎么绘制呢?代码是这样的

绘制虚线代码示例——
亲测!好用

#pragma mark - 绘制虚线具体方法
/**
** lineView:       需要绘制成虚线的view
** lineLength:     虚线的宽度
** lineSpacing:    虚线的间距
** lineColor:      虚线的颜色
**/
+ (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:

// 绘制红色虚线,宽度10,间距10,虚线高2
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:

如下图显示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息