强制Core Plot plotArea填充更新

时间:2012-09-15 15:33:37

标签: iphone ios ipad core-plot

我正在尝试打开和关闭 Core Plot 绘图区域的填充。当我在应用程序启动时设置填充时,一切正常。切换第一次工作正常。除非旋转显示器,否则打开或关闭填充后不起作用。

-(void)layoutGraphPlotAreaFill{
    CPTFill *plotFill=nil;
    if (self.graphPlotAreaHasFill) {
        plotFill=self.graphPlotAreaFill;
    }else{
        plotFill=nil;
    }

    self.graph.plotAreaFrame.plotArea.fill=plotFill;
}

我通过委托方法从设置视图控制器调用上面的代码。上述方法中的 NSLog 语句(已删除)表明正在调用该方法,graphPlotAreaHasFill属性设置正确且CPTFill正确。它只是没有更新plotArea填充。同样,它只会在旋转显示后更新。

使用 Core Plot 1.0

有关如何强制更新填充区域而不必旋转的任何建议?

由于

1 个答案:

答案 0 :(得分:2)

在这里找到答案:Calling setNeedsDisplay:YES on layer-hosting view does not redraw the view

结果是因为填充是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];
}