ios 绘制曲线走势图

- (void)drawLine{

//view是曲线的背景

viewUIView *view = [[UIView alloc]initWithFrame:CGRectMake(10,0,300,300)];

view.backgroundColor = [UIColor whiteColor];

[self.view addSubview:view];

//第一、UIBezierPath绘制线段

UIBezierPath *path = [UIBezierPath bezierPath];

//四个点

CGPoint point = CGPointMake(10,10);

CGPoint point1 = CGPointMake(200,100);

CGPoint point2 = CGPointMake(240,200);

CGPoint point3 = CGPointMake(290,200);

NSArray *arr = [NSArray arrayWithObjects:[NSValue valueWithCGPoint:point],[NSValue valueWithCGPoint:point1],[NSValue valueWithCGPoint:point2],[NSValue valueWithCGPoint:point3], nil];

NSIndexSet *set= [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, arr.count)];

//第二、就是这句话绘制

[arr enumerateObjectsAtIndexes:setoptions:0usingBlock:^(NSValue *pointValue, NSUInteger idx, BOOL *stop){

CGPoint point = [pointValue CGPointValue];[path addLineToPoint:point];

//(一)rect折线画法

CGRect rect;

rect.origin.x = point.x -1.5;

rect.origin.y = point.y -1.5;

rect.size.width =4;

rect.size.height =4;

//(二)rect射线画法

// CGRect rect = CGRectMake(10, 10, 1, 1);


UIBezierPath *arc= [UIBezierPath bezierPathWithOvalInRect:rect];[path appendPath:arc];    

}];


//第三、UIBezierPath和CAShapeLayer关联

CAShapeLayer *lineLayer = [CAShapeLayer layer];   

 lineLayer.frame = CGRectMake(0,150,320,400);   

 lineLayer.fillColor = [UIColor redColor].CGColor;   

 lineLayer.path = path.CGPath;   

 lineLayer.strokeColor = [UIColor redColor].CGColor;   

 [view.layer addSublayer:lineLayer];

//以下代码为附加的//(一)像一个幕布一样拉开,显得有动画

UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(0,100,320,400)];    

view1.backgroundColor = [UIColor whiteColor];   

[self.view addSubview:view1];       

 [UIView animateWithDuration:5animations:^{

view1.frame = CGRectMake(320,100,320,400);   

 }]; }

你可能感兴趣的:(ios 绘制曲线走势图)