2013-03-27 55 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;