2013-03-27 39 views
2

我在iOS應用中使用核心劇情,並讓它顯示只能水平滾動的條形圖。這是爲了允許比縱向屏幕更大的數據集(我不打算使用橫向方向)。核心劇情橫向滾動顯示顯示正極性象限

我已經有了那個工作得很好。但是,我想要

1)防止用戶滾動過零值進入表中未使用的負象限。

2)當用戶到達圖表中的最後一個條時停止水平滾動。

我確實在這個線程查詢第三張海報:Here.但沒有得到迴應。他提出了一種不可能發揮作用的方法(或者至少在我使用的版本中)。他正在分配只讀CPTPlotlotRange範圍類的變量(他將此稱爲CPPlotRange,因爲我猜他正在使用較早版本)與這行代碼一起使用。

newRange.location = CPDecimalFromFloat(0.0); 

回答

0

設置積空間的範圍與location =零和range =最後欄的位置(加上用於在杆的寬度的偏移)的globalXRange

+0

你是什麼意思globalXRange,plotSpace意思沒有這樣的變數。 – 2013-03-28 04:15:13

+0

啊我現在看到了。真是一團糟。因此,爲了限制運動,必須修改軸線範圍?!?看起來像一個錯誤的祕訣。當然,必須有更好的方式來實現這一點。 – 2013-03-28 04:55:00

+1

不是'xRange','globalXRange'。設置一次,繪圖空間將允許'xRange'只在該範圍內滾動。您也可以使用繪圖空間代理來做到這一點,但對於知道滾動限制的情況,使用全局範圍要容易得多。 – 2013-03-28 10:53:56

5

我知道這是有點晚,但爲尋找一個簡單快速的回答(像我來找)

只是把這個在

CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace; 

CPTPlotRange *globalYRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0) length:CPTDecimalFromDouble(HOW HIGH YOU WANT YOUR GRAPH)]; 
plotSpace.globalYRange = globalYRange; 
CPTPlotRange *globalxRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble() length:CPTDecimalFromDouble(HOW WIDE YOU WANT YOUR GRAPH)]; 
plotSpace.globalXRange = globalxRange;