-1

我正在尝试打开和关闭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 填充。同样,它只会在旋转显示器后更新。

使用核心情节 1.0

关于如何强制更新填充区域而无需旋转的任何建议?

谢谢

4

1 回答 1

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];
}
于 2012-09-15T16:18:38.933 回答