因為項目需要畫虛線,起初想用圖片重復疊加實現。搜羅了一圈還是封裝一個UIView
代碼如下
.h文件
#import
@interface DashesLineView : UIView
@property(nonatomic)CGPoint startPoint;//虛線起點
@property(nonatomic)CGPoint endPoint;//虛線終點
@property(nonatomic,strong)UIColor* lineColor;//虛線顏色
@end
.m文件
#import DashesLineView.h
#define kInterval 10 // 全局間距
@implementation DashesLineView
- (id)initWithFrame:(CGRect)frame
{
self= [super initWithFrame:frame];
if(self) {
_lineColor = [UIColor redColor];
_startPoint = CGPointMake(0, 1);
_endPoint = CGPointMake(screen_width , 1);
}
return self;
}
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextBeginPath(context);
CGContextSetLineWidth(context,0.5);//線寬度
CGContextSetStrokeColorWithColor(context,self.lineColor.CGColor);
CGFloat lengths[] = {4,2};//先畫4個點再畫2個點
CGContextSetLineDash(context,0, lengths,2);//注意2(count)的值等於lengths數組的長度
CGContextMoveToPoint(context,self.startPoint.x,self.startPoint.y);
CGContextAddLineToPoint(context,self.endPoint.x,self.endPoint.y);
CGContextStrokePath(context);
CGContextClosePath(context);
}
@end