首页 > 解决方案 > Coreplot:更改 CPTBarPlot 中单个元素的 zPosition

问题描述

我有 2 个 CPTBarPlots 的图表,很像 Coreplot Plot Gallery 项目中的 Vertical BarChart 示例。如果它的高度小于来自另一个 CPTBarPlot 的关联元素,我需要将一个具有较小基本宽度的元素放在前面。在数据源功能: func barFill(for barPlot: CPTBarPlot, record idx: UInt) -> CPTFill? 一个能够增加zPosition整体barPlot,但我无法在单个元素的基础上做到这一点。我观察到在方法调用时barPlot没有任何 CALayer 子层,我有点假设元素可能是。我在哪里可以访问zPositionCPTBarPlot 的元素?

标签: calayercore-plot

解决方案


如前所述,每个图都绘制在其自己的层中,按照将图添加到图中的顺序从后到前堆叠。您可以通过使用三个条形图来实现此效果。像往常一样给中间的数据。对于其他图,根据相对于其他图的数据值决定是在前图还是后图中的每个索引处显示条形图。从数据源返回nil以隐藏另一个绘图的该索引处的栏。


推荐阅读