核心情节:如何隐藏情节,轴和标签?

时间:2012-06-27 11:56:18

标签: ios core-plot

我有一个Y轴和X轴在默认绘图空间上绘制的图形以及主绘图,然后我有辅助绘图的单独绘图空间,每个绘图空间都有自己的Y轴(X轴是相同的所有情节)。

我正在实现按钮来打开和关闭辅助图,我希望这基本上包括整个绘图空间(绘图,自定义y轴和自定义y轴的标签)。对于绘图空间似乎没有任何“隐藏”属性,并且绘图和轴都具有“隐藏”属性,将这些设置为“是”会使轴标签可见。

  • 完全隐藏绘图空间内容的最佳方法是什么,而不会导致重绘不必要?

我猜一种方法可能是从图中完全删除绘图空间和绘图,但这感觉不直观。

3 个答案:

答案 0 :(得分:6)

在要隐藏的轴上将hidden设置为YES。如果您使用自定义标签(标签政策CPTAxisLabelingPolicyNone),只需将axisLabels设置为nil即可。如果希望它们重新出现,请设置新标签。对于其他标签政策,请将labelFormatter设置为nil以隐藏标签,并在您希望它们可见时指定有效的格式化程序。

答案 1 :(得分:6)

您可以将所有轴设置为在axisSet级别隐藏,也可以通过为轴指定CPTAxisLabelingPolicyNone的标签策略来隐藏标签。这个解决方案对我很有用:

CPTXYAxisSet *axisSet = (CPTXYAxisSet *) self.graphHostingView.hostedGraph.axisSet;
axisSet.hidden = YES;

CPTAxis *y = axisSet.yAxis;
y.labelingPolicy = CPTAxisLabelingPolicyNone;

CPTXYAxis *x = axisSet.xAxis;
x.labelingPolicy = CPTAxisLabelingPolicyNone;

答案 2 :(得分:5)

您也可以隐藏所有标签

CPTAxis *axis = someAxis;
hidden = YES;

axis.hidden = hidden;
for (CPTAxisLabel *axisLabel in axis.axisLabels) {
    axisLabel.contentLayer.hidden = hidden;
}