2010-09-07 42 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