在我的代码中,用图像代替数据标签,使用CPTPlotSpaceAnnotaions在条形图的每个条形图的中心显示。图像放置在中心,工作良好,但如果图像被放大,它就会延伸到酒吧外面。我要把它切到吧台的宽度。
图像是用
CPTBorderedLayer *borderedLayerObject =[[CPTBorderedLayer alloc] initWithFrame:CGRectMake(0, 0, 52, 52)];
borderedLayerObject.fill = [CPTFill fillWithImage:cptimage];
NSArray *anchorPoint = [NSArray arrayWithObjects:xPosition, yPosition, nil];
CPTPlotSpaceAnnotation *imageAnnotation = [[CPTPlotSpaceAnnotation alloc]initWithPlotSpace:graph.defaultPlotSpace anchorPlotPoint:anchorPoint];
imageAnnotation.contentLayer = borderedLayerObject;
[graph.plotAreaFrame addAnnotation:imageAnnotation];
return imageAnnotation;这个borderedLayerObject被设置为contentLayer of CPTPlotSpaceAnnotation,并返回CPTPlotSpaceAnnotation对象.
我画的图像采用borderedLayerObject的帧大小,并将其放置在条形图中,所以我无法理解如何裁剪我绘制的图像.
使用CPTPlotSpaceAnnotation是因为我需要在条形图的中心显示图像,使用锚点,我给出了x和y的位置,图像必须显示在条形图的条形图中。请帮我找到解决办法..。
发布于 2014-05-22 23:17:00
很容易确定棒子的宽度。如果barWidthsAreInViewCoordinates是YES,则由barWidth属性给出宽度。否则,您必须使用绘图空间将数据坐标转换为像素。挑选两个barWidth单位,沿着垂直于条形线的轴线(例如,垂直条的x轴),将它们转换成与绘图空间相对应的坐标,并从转换点中找出宽度。
https://stackoverflow.com/questions/23803610
复制相似问题