我正在尝试打开和关闭 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 。
有关如何强制更新填充区域而不必旋转的任何建议?
由于
答案 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];
}