【问题标题】:Coreplot annotations draw over the axisCoreplot 注释绘制在轴上
【发布时间】:2023-04-02 11:40:01
【问题描述】:

这是一张我认为可以快速说明问题的图片。您只需从 git hub 下载示例,转到曲线散点图示例并点击一个点以显示点注释,然后只需滚动图表即可将点移出图表。

所以通常我们希望注释浮动在所有内容之上,但有时我们设置了axisContraints,在这种情况下我们将它们设置为:

x.axisConstraints = [CPTConstraints constraintWithRelativeOffset:0.5];
y.axisConstraints = [CPTConstraints constraintWithLowerOffset:0.0];

我们希望我们添加的注释与网格线、绘图线和绘图点一样绘制。

我尝试了以下测试,看看会发生什么,但这没有帮助。

// reorder layer
[annotationHostLayer insertSublayer:annotation.contentLayer atIndex:0];
[annotationHostLayer setNeedsDisplay];

它会在注释上绘制网格线、轴,但注释仍会在图表上浮动。

我正在使用 coreplot 中的示例代码,这里是 github link,我一直在试验的图表是“曲线散点图”图。

更新:我一直在为 plotArea 使用 maskToBorder 和 maskToBounds。如果轴是在图层边界内绘制的,那么屏蔽边界似乎会起作用,但事实并非如此。这会剪辑 y 轴。我四处寻找其他剪辑代码,但无济于事。

【问题讨论】:

    标签: ios graph charts calayer core-plot


    【解决方案1】:

    隐藏位于所需区域之外的任何注释的内容层。使用绘图空间委托来监控绘图空间的变化,并根据需要显示或隐藏注释。

    【讨论】:

    • 再次您好,谢谢。您的答案可能是解决此问题的最佳/不那么麻烦的方法。最好我想找到一种方法来弄清楚为什么注释没有正确剪辑。我希望它们表现得像线条、网格线和 x 轴。我认为 annotationHostLayer 应该使用 mask to bounds 属性简单地剪辑注释,但它根本不会以这种方式影响注释。您对为什么不是这样有任何想法吗?
    • 你的主机层是什么?如果将注释添加到绘图中,它们应该会剪辑到绘图区域。
    • 你觉得对吗?这是一个链接pastebin.com/iQ8dTUsq 没有什么特别的,只是将注释粘贴到绘图区域。
    • 您可以在他们的 github 上的曲线散点图示例中看到它直接发生。不需要新的代码就能看到它的发生。只需点击控制点即可查看注释。
    • 将注释添加到绘图中,它会像您想要的那样工作。 [plot addAnnotation:annotation];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多