如何使用 CPTLegend 作为按钮切换图形可见性

How to toggle graph visibility with CPTLegend as button

我想允许在基于 CorePlot 的图表上切换 on/off 个单独的图表。我认为最合理的方法是让每个 Legend 项目都充当按钮。我不确定如何执行此操作,因为 CPTLegend 是 CALayer 而不是 UIView,而且 CPTLegend 代表所有图例项,我需要切换与它内部管理的每个图例项关联的操作。

您可以使用图例委托来监视图例上的触摸并做出相应的响应。有关示例代码,请参阅 Plot Gallery 示例应用程序中的“数学函数图”和“简单饼图”。

例如,这是函数图示例中的委托函数,它切换所选图的可见性:

-(void)legend:(nonnull CPTLegend *__unused)legend 
    legendEntryForPlot:(nonnull CPTPlot *)plot
    wasSelectedAtIndex:(NSUInteger __unused)idx
{
    plot.hidden = !plot.hidden;
}