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

iOS 绘制虚线

2016-06-18 11:00 501 查看
因为最近遇到了绘制虚线的问题,所以把问题的解决办法记录下来。

我把这个方法封装了一个类,请看代码

DrawDottedLine.h文件

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface DrawDottedLine : NSObject

// 对外提供画虚线的方法
+ (void)drawDashLine:(UIView *)lineView lineLength:(int)lineLength lineSpacing:(int)lineSpacing lineColor:(UIColor *)lineColor;

@end


DrawDottedLine.m文件

#import "DrawDottedLine.h"

@implementation DrawDottedLine

- (instancetype)init
{
self = [super init];
if (self) {
}
return self;
}

/* 参数说明
lineView:用来画虚线的视图
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];
//  设置虚线颜色为blackColor
[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];
}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: