//绘制曲线
- (void)drawView{
UIBezierPath*path =[UIBezierPath bezierPath];
DrawModel*firstModel =[self.dataArr firstObject];
CGPoint firstPoint=firstModel.currPoint;
[path moveToPoint:firstPoint];if (self.dataArr.count<2) {return;
}for (int i=1; i
DrawModel*seconModel =self.dataArr[i];
CGPoint secondPoint=seconModel.currPoint;//中心点
CGPoint midPoint =[self getMindPointWithFirstPoint:firstPoint secondPoint:secondPoint];//第一个点都是中心点,为了绘制两点之间有弧度
[path addQuadCurveToPoint:midPoint controlPoint:[self getControlPointWithFirstPoint:midPoint SecondPoint:firstPoint]];
[path addQuadCurveToPoint:secondPoint controlPoint:[self getControlPointWithFirstPoint:midPoint SecondPoint:secondPoint]];
firstPoint=secondPoint;
}
CAShapeLayer*layer =[CAShapeLayer layer];
layer.lineWidth= 2;
layer.strokeColor=[UIColor redColor].CGColor;
layer.fillColor=[UIColor clearColor].CGColor;
layer.path=[path CGPath];
[self.backScrollView.layer addSublayer:layer];
}//获取两点之间控制点
-(CGPoint)getControlPointWithFirstPoint:(CGPoint)firstPoint
SecondPoint:(CGPoint)secondPoint{
CGPoint controlPoint=[self getMindPointWithFirstPoint:firstPoint secondPoint:secondPoint];
CGFloat diffY= fabs(secondPoint.y -controlPoint.y);if (firstPoint.y
controlPoint.y+=diffY;else if (firstPoint.y >secondPoint.y)
controlPoint.y-=diffY;returncontrolPoint;
}//获取两点之间中心点
-(CGPoint)getMindPointWithFirstPoint:(CGPoint)firstPoint
secondPoint:(CGPoint)secondPoint{return CGPointMake((firstPoint.x + secondPoint.x)/2, (firstPoint.y + secondPoint.y)/2);
}