2010-09-07 65 views
2

我试过将isFloatingAxis设置为YES,但它只是让我的轴消失。我的轴设置如下:在核心阴谋,我如何让我的轴浮动?

CPXYAxisSet *axisSetKin = (CPXYAxisSet *)kinematicsGraph.axisSet; 
CPXYAxis *xKin = axisSetKin.xAxis; 
[xKin setIsFloatingAxis:YES]; 
xKin.labelingPolicy = CPAxisLabelingPolicyAutomatic; 
xKin.orthogonalCoordinateDecimal = CPDecimalFromString(@"0"); 
xKin.minorTicksPerInterval = 4; 
xKin.preferredNumberOfMajorTicks = 9; 
xKin.majorGridLineStyle = majorGridLineStyleKin; 
xKin.minorGridLineStyle = minorGridLineStyleKin; 
xKin.labelOffset = 10.0; 
xKin.title = @"Lab Angle"; 
xKin.titleOffset = 30.0; 
xKin.titleLocation = CPDecimalFromString(@"2.7"); 

任何想法?

+0

我真的不知道我在这里做什么。我一直在剔除CPTestApp代码并复制/粘贴似乎相关的位。如果有人能掀起一个浮动轴的最小例子,那真是太棒了。 – TraxusIV 2010-09-07 06:07:48

回答

1

好吧,它看起来像有约束是关键。所以我应该有

CPConstraints y2Constraints = {CPConstraintFixed, CPConstraintFixed}; 
    yKin.isFloatingAxis = YES; 
    yKin.constraints = y2Constraints; 

在那里。如果使用CPConstraintNone代替,那么当您调整它坐在的视图的大小时,轴实际上会四处移动,直到程序第一次启动时它可能看起来根本不存在。固定不动。现在要弄清楚如何定位它...

哦,还有一点是必须要知道的:轴设置为浮动时,可以显示在正常绘图空间之外。你可以通过修改与起源,例如究竟在何处调整,

xKin.orthogonalCoordinateDecimal = CPDecimalFromString(@"0.5"); 

我不知道到底是什么单位都是这样,所以你可能要玩的号码找到你想要的。

如果您希望轴出现在情节的底部和左侧,并且待在那里,您还有一件事要做。因为您将位置设置为0,所以使用上面的.orthogonalCoordinateDecimal技巧,它们实际上会显示在绘图空间之外,因此似乎已消失。当我第一次设置setIsFloatingAxis:YES时,我的程序就是这种情况。要解决这个问题,你必须添加一些填充到plotAreaFrame。请注意,这是在CPTestApp的主要部分看到的填充,肚里[graph setPaddingLeft:0]; 取而代之的不同,使用graph.plotAreaFrame.paddingTop = 20.0;(或相当于[[graph plotAreaFrame] setPaddingTop: 20.0];

的是完整的例子可以在CPTestApp的AxisDemoController.m被发现。

所以我想我有点儿这里回答我的问题?

3

我也一直在玩的演示应用程序获得该地块做什么,我需要的。使用CPTestApp-iPhone作为基础,我开始与CPTestAppScatterPlotController.m

首先,我做的事:

y.isFloatingAxis = YES; 
x.isFloatAxis = YES; 

击中“运行”后,它看起来像轴心消失了,但它们仍然存在,如果你仔细看。在屏幕的左侧和底部有刻度线,很难看清楚。

要看到标签,我们需要添加一些额外的填充。对CPTestAppScatterPlotController.m顶部请注意,我们设置了图形本身一些填充:

graph.paddingLeft = 10.0; 
graph.paddingTop = 10.0; 
graph.paddingRight = 10.0; 
graph.paddingBottom = 10.0; 

如果再加上:

graph.plotAreaFrame.paddingLeft = 30.0; 
graph.plotAreaFrame.paddingBottom = 30.0; 

人们可以得到标签出现。

+0

我在图上已经有了填充,但是向plotAreaFrame添加填充可以解决这个问题,谢谢! – 2011-05-18 16:55:32