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

ios 绘制曲线走势图

2014-08-22 14:47 323 查看
- (void)drawLine{

//view是曲线的背景view
UIView *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:set options:0 usingBlock:^(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:5 animations:^{
view1.frame = CGRectMake(320, 100, 320, 400);
}];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: