【问题标题】:Coreplot: Changing the zPosition of an individual element in a CPTBarPlotCoreplot:更改 CPTBarPlot 中单个元素的 zPosition
【发布时间】:2019-12-24 02:00:50
【问题描述】:

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

【问题讨论】:

    标签: calayer core-plot


    【解决方案1】:

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

    【讨论】:

    • 这可行,但请注意 2 个实际条形图需要 3 个条形图(1,0,1),3 个实际条形图需要 7 个条形图(1,2,1,0, 1,2,1) 为了满足排列 (0,1,2), (2.1,0), (1,0,2), (2,0,1), (0,2, 1) & (1,2,0) 而 4 个条形图需要图中的 4x3x2x1+1 个条形图来满足 24 个排列。诚然,3个以上的条形图,其中元素绘制在彼此之上会相当难看..
    猜你喜欢
    • 2021-01-07
    • 1970-01-01
    • 2016-02-22
    • 2018-01-15
    • 2020-10-14
    • 1970-01-01
    • 2020-02-04
    • 2015-10-07
    • 1970-01-01
    相关资源
    最近更新 更多