1

我有一个包含许多图表的 iOS 应用程序。当图表以横向模式显示时,我想修改 xRange 值,但我不能让 Core Plot 这样做。

我试图通过调用完全重新创建图表

[graph removePlotWithIdentifier:@"myGraphName"];

在“WillRotateToInterfaceOrientation”中,然后使用新的 xRange 再次构建我的图表,但它不起作用。

我希望 CorePlot 根据设备方向动态调整 xRange。

我有这段代码可以根据第一次创建图形时的设备方向来管理不同的 xRange:

    UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
if(orientation == UIInterfaceOrientationPortrait
   || orientation == UIInterfaceOrientationPortraitUpsideDown) {

    plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(lengthToDisplay/2) length:CPTDecimalFromInteger(lengthToDisplay/2)];

} else if(orientation == UIInterfaceOrientationLandscapeLeft
          || orientation == UIInterfaceOrientationLandscapeRight) {

    plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(lengthToDisplay) length:CPTDecimalFromInteger(lengthToDisplay)];
}

它工作正常。但是,如果图表已经显示并且我更改了设备方向,则不会发生任何事情。我试图将此代码放在“WillRotateToInterfaceOrientation”中,但同样没有任何反应。

4

0 回答 0