8

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

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

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

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

4

3 回答 3

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;
于 2014-05-23T20:22:15.267 回答
6

设置在hiddenYES隐藏的轴上。如果您使用自定义标签(标签策略CPTAxisLabelingPolicyNone),只需axisLabelsnil. 当您希望它们重新出现时设置新标签。对于其他标签策略,将 设置labelFormatternil隐藏标签并在您希望它们可见时分配有效的格式化程序。

于 2012-07-08T20:52:30.693 回答
5

您还可以将所有标签设置为隐藏

CPTAxis *axis = someAxis;
hidden = YES;

axis.hidden = hidden;
for (CPTAxisLabel *axisLabel in axis.axisLabels) {
    axisLabel.contentLayer.hidden = hidden;
}
于 2013-04-25T19:49:07.860 回答