转载:http://blog.csdn.net/zh198964/article/details/47727053
因为项目需要画虚线,起初想用图片重复叠加实现。搜罗了一圈还是封装一个UIView
代码如下
.h文件
-
#import <UIKit/UIKit.h>
-
-
@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};
-
-
CGContextSetLineDash(context,0, lengths,2);
-
-
CGContextMoveToPoint(context,self.startPoint.x,self.startPoint.y);
-
-
CGContextAddLineToPoint(context,self.endPoint.x,self.endPoint.y);
-
-
CGContextStrokePath(context);
-
-
CGContextClosePath(context);
-
-
}
-
-
-
@end
|
|