Iphone 强制更新Core Plot plotArea填充
我正在尝试打开和关闭核心打印区的填充。当我在应用程序启动时设置填充时,一切正常。第一次切换效果很好。除非旋转显示器,否则填充打开或关闭的后续切换不起作用Iphone 强制更新Core Plot plotArea填充,iphone,ios,ipad,core-plot,Iphone,Ios,Ipad,Core Plot,我正在尝试打开和关闭核心打印区的填充。当我在应用程序启动时设置填充时,一切正常。第一次切换效果很好。除非旋转显示器,否则填充打开或关闭的后续切换不起作用 -(void)layoutGraphPlotAreaFill{ CPTFill *plotFill=nil; if (self.graphPlotAreaHasFill) { plotFill=self.graphPlotAreaFill; }else{ plotFill=nil;
-(void)layoutGraphPlotAreaFill{
CPTFill *plotFill=nil;
if (self.graphPlotAreaHasFill) {
plotFill=self.graphPlotAreaFill;
}else{
plotFill=nil;
}
self.graph.plotAreaFrame.plotArea.fill=plotFill;
}
我通过委托方法从设置视图控制器调用上述代码。上述方法(已删除)中的NSLog语句表明正在调用该方法,graphPlotAreaHasFill
属性设置正确,CPTFill
正确。它只是没有更新绘图区域填充。同样,它只会在旋转显示器后更新
使用核心图1.0
关于如何在不必旋转的情况下强制更新填充区域,有何建议
谢谢在这里找到了答案:
因为fill是一个CALayer
子类,所以我可以调用setNeedsDisplay
并刷新它。更新代码如下:
-(void)layoutGraphPlotAreaFill{
CPTFill *plotFill=nil;
if (self.graphPlotAreaHasFill) {
plotFill=self.graphPlotAreaFill;
}else{
plotFill=nil;
}
self.graph.plotAreaFrame.plotArea.fill=plotFill;
[self.graph.plotAreaFrame.plotArea setNeedsDisplay];
}
这是核心图中的一个错误,它应该自动重新绘制。我已经在存储库中修复了这个问题,它将包含在下一个版本中。您可以使用Mercurial提取最新代码以获得更改,或者继续使用修复程序,直到更新到新版本的Core Plot。@Eric,此错误是否也会影响graph.title属性?我有同样的问题,只告诉旋转或调用[graph setNeedsDisplay]即可解决。设置新标题文本时,图表标题应更新。你不应该为了重画标题而重画整个图表。