Ios CGContextStrokePath图形的额外行错误
我不熟悉在iOS上绘制条形图和线条,目前我对CGContextStrokePath有一个问题,问题在下面的图片上,我如何解决它,有什么想法吗 我将图形分为3部分: 波顿条码:Ios CGContextStrokePath图形的额外行错误,ios,iphone,objective-c,core-graphics,Ios,Iphone,Objective C,Core Graphics,我不熟悉在iOS上绘制条形图和线条,目前我对CGContextStrokePath有一个问题,问题在下面的图片上,我如何解决它,有什么想法吗 我将图形分为3部分: 波顿条码: CGContextRef context4 = UIGraphicsGetCurrentContext(); CGContextSetStrokeColorWithColor(context4, [UIColor colorWithRed:(204.0f/255.0f) green:(0.0f/25
CGContextRef context4 = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context4, [UIColor colorWithRed:(204.0f/255.0f) green:(0.0f/255.0f) blue:(102.0f/255.0f) alpha:1].CGColor);
//[UIColor colorWithRed:(0/255.0) green:(158/255.0) blue:(229/255.0) alpha:1]
//[UIColor colorWithRed:(0/255.0) green:(158/255.0) blue:(229/255.0) alpha:1]
CGContextSetRGBFillColor(context4, 204.0f/255.0f, 0.0f/255.0f, 102.0f/255.0f, 1.0);
CGMutablePathRef pathRef = CGPathCreateMutable();
CGPathMoveToPoint(pathRef, NULL, coor, 75);
CGPathAddLineToPoint(pathRef, NULL, coor, -demoData2[i]*coefficient+75);
CGPathAddLineToPoint(pathRef, NULL, coor+22, -demoData2[i]*coefficient+75); //aqui aumenta a barra
CGPathAddLineToPoint(pathRef, NULL, coor+22, 75); //aqui aumenta a barra
CGPathCloseSubpath(pathRef);
CGContextAddPath(context4, pathRef);
CGContextFillPath(context4);
CGContextAddPath(context4, pathRef);
//CGContextStrokePath(context);
CGContextSetShadow(context4,CGSizeMake(2, 2) , 2);
CGPathRelease(pathRef);
CGContextRef context3 = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context3, [UIColor colorWithRed:(231.0f/255.0f) green:(174.0f/255.0f) blue:(39.0f/255.0f) alpha:1].CGColor);
//[UIColor colorWithRed:(0/255.0) green:(158/255.0) blue:(229/255.0) alpha:1]
//[UIColor colorWithRed:(0/255.0) green:(158/255.0) blue:(229/255.0) alpha:1]
CGContextSetRGBFillColor(context3, 231.0f/255.0f, 174.0f/255.0f, 39.0f/255.0f, 1.0);
CGContextSetShadow(context3,CGSizeMake(2, 2) , 2);
CGMutablePathRef pathRef = CGPathCreateMutable();
CGPathMoveToPoint(pathRef, NULL, coor, 75);
CGPathAddLineToPoint(pathRef, NULL, coor, -demoData[i]*coefficient+75);
CGPathAddLineToPoint(pathRef, NULL, coor+22, -demoData[i]*coefficient+75); //aqui aumenta a barra
CGPathAddLineToPoint(pathRef, NULL, coor+22, 75); //aqui aumenta a barra
CGPathCloseSubpath(pathRef);
CGContextAddPath(context3, pathRef);
CGContextFillPath(context3);
CGContextAddPath(context3, pathRef);
//CGContextStrokePath(context);
CGPathRelease(pathRef);
顶部条码:
CGContextRef context4 = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context4, [UIColor colorWithRed:(204.0f/255.0f) green:(0.0f/255.0f) blue:(102.0f/255.0f) alpha:1].CGColor);
//[UIColor colorWithRed:(0/255.0) green:(158/255.0) blue:(229/255.0) alpha:1]
//[UIColor colorWithRed:(0/255.0) green:(158/255.0) blue:(229/255.0) alpha:1]
CGContextSetRGBFillColor(context4, 204.0f/255.0f, 0.0f/255.0f, 102.0f/255.0f, 1.0);
CGMutablePathRef pathRef = CGPathCreateMutable();
CGPathMoveToPoint(pathRef, NULL, coor, 75);
CGPathAddLineToPoint(pathRef, NULL, coor, -demoData2[i]*coefficient+75);
CGPathAddLineToPoint(pathRef, NULL, coor+22, -demoData2[i]*coefficient+75); //aqui aumenta a barra
CGPathAddLineToPoint(pathRef, NULL, coor+22, 75); //aqui aumenta a barra
CGPathCloseSubpath(pathRef);
CGContextAddPath(context4, pathRef);
CGContextFillPath(context4);
CGContextAddPath(context4, pathRef);
//CGContextStrokePath(context);
CGContextSetShadow(context4,CGSizeMake(2, 2) , 2);
CGPathRelease(pathRef);
CGContextRef context3 = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context3, [UIColor colorWithRed:(231.0f/255.0f) green:(174.0f/255.0f) blue:(39.0f/255.0f) alpha:1].CGColor);
//[UIColor colorWithRed:(0/255.0) green:(158/255.0) blue:(229/255.0) alpha:1]
//[UIColor colorWithRed:(0/255.0) green:(158/255.0) blue:(229/255.0) alpha:1]
CGContextSetRGBFillColor(context3, 231.0f/255.0f, 174.0f/255.0f, 39.0f/255.0f, 1.0);
CGContextSetShadow(context3,CGSizeMake(2, 2) , 2);
CGMutablePathRef pathRef = CGPathCreateMutable();
CGPathMoveToPoint(pathRef, NULL, coor, 75);
CGPathAddLineToPoint(pathRef, NULL, coor, -demoData[i]*coefficient+75);
CGPathAddLineToPoint(pathRef, NULL, coor+22, -demoData[i]*coefficient+75); //aqui aumenta a barra
CGPathAddLineToPoint(pathRef, NULL, coor+22, 75); //aqui aumenta a barra
CGPathCloseSubpath(pathRef);
CGContextAddPath(context3, pathRef);
CGContextFillPath(context3);
CGContextAddPath(context3, pathRef);
//CGContextStrokePath(context);
CGPathRelease(pathRef);
线形图:
CGMutablePathRef spadePath = CGPathCreateMutable();
CGPathMoveToPoint(spadePath, NULL, nextX, downToXline - demoData[0]*coefficient);
CGContextRef context5 = UIGraphicsGetCurrentContext();
for (int i = 1; i < [_lineGraph count]; i++) {
CGPathAddCurveToPoint(spadePath, NULL, nextX+bizieLineAligm, corectPointer1, nextX+distanceNextYline-bizieLineAligm, downToXline - demoData[i]*coefficient, nextX+distanceNextYline, downToXline - demoData[i]*coefficient);
// NSLog(@"POint %d: %f , %f %f %f %f %f",i,nextX+bizieLineAligm, corectPointer1, nextX+distanceNextYline-bizieLineAligm, downToXline - demoData[i], nextX+distanceNextYline, downToXline - demoData[i]);
nextX +=distanceNextYline;
corectPointer1 = downToXline - demoData[i]*coefficient;
}
[[UIColor colorWithRed:115.0/255.0f green:171.0f/255.0f blue:40.0f/255.0f alpha:1.0f] set];
CGContextSetLineWidth(context5, 2);
CGContextAddPath(context5, spadePath);
CGContextStrokePath(context5);
CGMutablePathRef spadePath=CGPathCreateMutable();
CGPathMoveToPoint(spadePath、NULL、nextX、下行-解调数据[0]*系数);
CGContextRef context5=UIGraphicsGetCurrentContext();
对于(int i=1;i<[u线图计数];i++){
CGPathAddCurveToPoint(spadePath,NULL,nextX+bizieLineAligm,corectPointer1,nextX+distanceNextYline bizieLineAligm,downToXline-demoData[i]*系数,nextX+distanceNextYline,downToXline-demoData[i]*系数);
//NSLog(@“点%d:%f,%f%f%f%f”,i,nextX+bizieLineAligm,corectPointer1,nextX+distance nextyline bizieLineAligm,downToXline-demoData[i],nextX+distance nextyline,downToXline-demoData[i]);
nextX+=距离NEXTYLINE;
corectPointer1=下行-解调数据[i]*系数;
}
[[UIColor COLOR WITH RED:115.0/255.0f绿色:171.0f/255.0f蓝色:40.0f/255.0f阿尔法:1.0f]组];
CGContextSetLineWidth(context5,2);
CGContextAddPath(context5,spadePath);
CGContextStrokePath(context5);
编辑:在最后一个栏上,绿线图形不得与底部栏混合,顶部栏的颜色不得与底部栏的颜色相同:)您能描述一下它应该是什么样子吗?好的,刚刚编辑了问题:)为什么要添加路径,填充路径,然后再次添加路径?第二次添加它有什么作用?我是新来的,你是说我不需要添加它?