2014-09-24 96 views
0

我正在使用核心绘图创建我的图形。核心绘图渐变线条

我想在我的酒吧中有一个渐变,以便颜色从黄色开始变为红色。然而这取决于酒吧有多高。例如,该图应该如下:

enter image description here

我使用最右边(最高的一种)的图像的应用程序中。但有2个问题。

1)酒吧是倒挂的。所以他们以红色开始并且变成黄色。

2)如果我使用太大的图像,酒吧是全红的。如果我使用太小的图像,它会开始重复。如果我使用正确尺寸的图像,那么它看起来可行。但是,我将在多个图形中使用这些图像,这些图形的大小并不相同。因此,使图像尺寸合适似乎效率不高。另外,我会为每个小区设置多个小节,所以如果图形改变大小,那么这意味着所有图像都必须更改。

这里是我用来创建栏代码:

CPTImage *image = [CPTImage imageForPNGFile:@"gradient-bar"]; 
image.tiled = YES; 
CPTFill *areaFill = [CPTFill fillWithImage:image]; 

CPTBarPlot *plot = [[CPTBarPlot alloc] init]; 
plot.fill = areaFill; 
plot.identifier = @"BIP"; 

下面是当酒吧图像的尺寸是否合适的图像:

enter image description here

我最主要的我正在寻找能够在任何大小的图表上使用一张图片。

非常感谢。

=====

编辑

如果我设置image.tiled = NO,我得到如下图:

enter image description here

我想图来就像我原来发布的图片一样。所以在250分左右,它应该只是黄色。而如果它是1000,它应该穿过从黄色到红色的整个范围的颜色。

回答

0

您正在使用平铺图像,这是为什么当图像比原始图像大时重复。将tiled设置为NO可以将图像拉伸以填充条形。我不知道它为什么翻转。

+0

嗨埃里克感谢您的回复。我试图将平铺图像设置为否,但是这并不能达到我期待的结果。请看我编辑的帖子。谢谢。 – pls 2014-09-25 08:51:40

+0

如果你想要平铺的外观,确保图像至少与最高的酒吧一样高(屏幕点)。 – 2014-09-25 11:19:58

+0

感谢您确认这是要走的路。感谢Core Plot的出色工作。 – pls 2014-09-25 15:46:35