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

IOS 如何实现画虚线

2015-08-17 16:37 711 查看

因为项目需要画虚线,起初想用图片重复叠加实现。搜罗了一圈还是封装一个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};//先画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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: