2013-10-22 33 views
3

時,我有一個簡單的核心情節與x軸alternatingBandFills核心情節alternatingBandFills「跳躍」水平滾動

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

的影響:

plot

當我水平滾動現在(旋轉到左邊),當0到10之間的x區域向左看到可見範圍外時,填充顏色將「跳躍」,而10到20會變爲高亮顯示(而20到30會變成白色,等等)。

有沒有辦法保持樂隊,因爲它是沒有輪換時滾動?

回答

0

現在,使用繪圖空間代表來監視繪圖空間的更改並根據需要隨機移動填充顏色。我將issue 601添加到了Core Plot問題跟蹤器,要求使用這個功能來簡化它。

+0

您能否解釋解決方法我不知道如何洗牌填充顏色和使用哪種方法。 Thks – Gros

+0

使用情節空間委託來監視情節空間的變化。實現'-plotSpace:didChangePlotRangeForCoordinate:'委託方法。每次更改後,檢查繪圖範圍並根據需要隨機移動「alternatingBandFills」數組。 –

+0

感謝您的精確度,我使它幾乎工作我使用模數來檢測我的主要時期的順序,但我不能使它正確地工作,當滾動正確或後面......你可以做一個測試,似乎不是微不足道的它的工作......如果我不能使用此功能,我會使用barplot作爲解決方法。 – Gros

0

作爲一種變通方法,我實現了一些BarPlot可見屏幕上,但性能是壞在iPhone 4 & 4S比較alternatingBandFills即使數據非常少,所以我通過洗牌回來這個alternatingBandFills陣列中的- plotSpace:didChangePlotRangeForCoordinate:埃裏克說。在這裏,我的解決方案來實現:

-(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; 
    } 
} 

如果您globalXRange較大/前比你xrange.origin,所以你xRange.location會< 0滾動時落後,但變量的值,將通過從0至-0所以我在這種情況下檢索-1值。

注意:在globalXRange之前,我仍然遇到一個新的主要問題,我得到了一個無法修復的洗牌問題,所以我避免了這種情況。