Ios 核心地块交替带状填充“;“跳跃”;水平滚动时

Ios 核心地块交替带状填充“;“跳跃”;水平滚动时,ios,core-plot,Ios,Core Plot,我有一个简单的核心图,xAxis交替填充 xAxis.alternatingBandFills = [NSArray arrayWithObjects:[bandFillColor colorWithAlphaComponent:0.1], [NSNull null], nil]; 其效果是: 现在,当我水平滚动(向左平移)时,当0到10之间的x区域在可视范围之外向左移动时,填充颜色将“跳跃”,10到20将变为高亮显示(20到30将变为白色,依此类推) 有没有办法在滚动时不改变

我有一个简单的核心图,xAxis交替填充

xAxis.alternatingBandFills        = [NSArray arrayWithObjects:[bandFillColor colorWithAlphaComponent:0.1], [NSNull null], nil];
其效果是:

现在,当我水平滚动(向左平移)时,当0到10之间的x区域在可视范围之外向左移动时,填充颜色将“跳跃”,10到20将变为高亮显示(20到30将变为白色,依此类推)


有没有办法在滚动时不改变色带的状态?

现在,使用打印空间代理来监视打印空间的更改,并根据需要调整填充颜色。我在核心绘图问题跟踪器中添加了一项功能,以简化此操作。

作为解决方法,我在可见屏幕上实现了一些条形图,但与交替带填充相比,iPhone 4和4S上的性能很差,即使数据很少,所以我通过洗牌中的数组回到了这个交替带填充plotSpace:didChangePlotRangeForCoordinate:Eric说过。这里是我实施的解决方案:

-(void)plotSpace:(CPTPlotSpace *)space didChangePlotRangeForCoordinate:(CPTCoordinate)coordinate {
if (self.plotSpace.xRange.locationDouble <0) {//area before your xrange origin to pass from 0 to -1 and not 0 to -0
         value = value-1;
    }

    int value = plotSpace.xRange.locationDouble.x/majorInterval;
    if (self.currentFillBand != value%2) {
        NSArray * array = xaxis.alternatingBandFills;
        xaxis.alternatingBandFills = @[array[1], array[0]];
        self.currentFillBand = value%2;
    }
}
-(void)绘图空间:(CPTPlotSpace*)空间didChangePlotRangeforCoordination:(CPTCoordinate)坐标{

如果(self.plotSpace.xRange.locationDouble您能解释一下解决方法吗?我不知道如何洗牌填充颜色以及使用哪些方法。t使用打印空间代理监控打印空间的更改。执行
-plotSpace:didChangePlotRangeForCoordinate:
代理方法。每次更改后,检查打印范围并洗牌
alternatingBandFills
数组,如果需要的话。由于精度,我让它几乎可以工作。我使用了一个模来根据我的主周期检测顺序,但当向右或向后滚动时,我无法使它完美工作…你能做一个测试吗,让它工作起来似乎不简单…如果我需要,我将使用一个条形图作为解决方法无法使用此功能。