Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 核心打印:当设备方向改变时,如何动态更改plotSpace.xRange?_Ios_Core Plot_Xrange - Fatal编程技术网

Ios 核心打印:当设备方向改变时,如何动态更改plotSpace.xRange?

Ios 核心打印:当设备方向改变时,如何动态更改plotSpace.xRange?,ios,core-plot,xrange,Ios,Core Plot,Xrange,我有一个iOS应用程序,里面有很多图表。当图表以横向模式显示时,我想修改xRange值,但我不能让Core Plot这样做 我试图通过调用 [graph removePlotWithIdentifier:@"myGraphName"]; 在“WillRotateToInterfaceOrientation”中,然后使用新的xRange再次构建我的图形,但它不起作用 我希望CorePlot根据设备方向动态调整xRange 我有以下代码来管理不同的xRange,具体取决于第一次创建图形时的设备方向

我有一个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”中,但还是没有任何结果。

此代码是否实际执行?使用
NSLog
语句查找。你在测试什么版本的iOS?从iOS 6开始,设备旋转的处理方式发生了变化。看苹果的。下面的代码执行:我没有把所有的东西都放在这里,但我会根据设备的方向处理其他的变化,这些变化是在设备方向改变时完成的。我已经在iOS6和更早的版本上试过了。无法理解为什么未更新范围…什么是
plotSpace
?它是指图形实际使用的绘图空间吗?显示长度的值是多少?它是什么类型?是的,plotSpace是对图形实际使用的绘图空间的引用:
CPTXYPlotSpace*plotSpace=(CPTXYPlotSpace*)graph.defaultPlotSpace
和lengthToDisplay是根据要显示的点数计算的,它是一个NSInteger:
NSInteger lengthToDisplay=[Data\u graph count]*graphTimeFrame