【问题标题】:Is there any way to set Gradient with different Colors in Shinobi Controls for iOS有没有办法在 iOS 的 Shinobi Controls 中设置具有不同颜色的渐变
【发布时间】:2013-06-29 12:48:36
【问题描述】:

我有 4 个 SChartLineSeries(不同的线条颜色说读取、绿色、黄色、蓝色)。这四个都可能在任何时候相互交叉。我还必须用渐变填充它。我的观点是:

  1. 如果我们在 x 轴的最低位置有黄色线,我们可以根据黄色管理渐变。

    series.style.showFill = YES;

    series.style.areaColor = [UIColor colorWithRed:65.0 / 255.0 green:165.0 / 255.0 blue:65.0 / 255.0 alpha:1];

    series.style.areaColorLowGradient = [UIColor colorWithRed:35.0 / 255.0 green:75.0 / 255.0 blue:35.0 / 255.0 alpha:1];

  2. 但是,如果红线在任何一点穿过黄线(黄线不再在底部)并成为最底线。现在我必须以这样一种方式制作渐变效果,即黄线将在其下方具有渐变和黄色效果,而红线将在其下方具有渐变与红色效果。等等。

  3. AND,与最底线上方的线相同。我们必须为它制作渐变效果。如果其他线越过这条线,那么渐变的颜色应该改变。如果第三行切断第二行,则再次更改颜色。等等。但是渐变效果不应该到底部,它应该在与下一行相遇的地方停止。

我必须为所有行显示这些效果。

所以,请有任何想法。

感谢您的回复。

【问题讨论】:

  • 任何人都可以给我任何想法吗?

标签: ios mobile


【解决方案1】:

听起来你需要堆叠你的系列并将你的系列分成更小的系列:

要堆叠您的系列,请将每个系列的 stackIndex 属性设置为相同的 NSNumber - 例如:

lineSeries.stackIndex = @0;

这将意味着您的线填充带状,“最低”到下一个最低,依此类推。您还需要为每个数据点提供 yValue,作为与相同 xValue 的前一个(较低)系列 yValue 的偏移量。

仅此一项并不能解决线条重叠的问题 - 要解决此问题,您可以在系列顺序发生变化的每个点(当两条线交叉时)将数据拆分为不同的部分(不同系列)。这种方法意味着在将数据传递到图表之前,您的数据源必须做大量工作 - 您最终可能会得到很多系列 - 但它应该会产生您想要的效果。希望这可以帮助! =)

免责声明:我在 ShinobiCharts 工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多