使用 ShinobiChart 修改 y 轴的垂直标签位置

Modify the vertical label position for y-axis with ShinobiChart

我有一个 ColumnSeries 图表,我想表示 majorTickLabel 就像悬停在 majorGridLine 上方一样,但我没有看到一种直接的方法来控制标签超出我的范围目前有实现插入标签,使其'hovers'在图表上方。

API 是否缺少此功能?如果是这样,关于在哪里可以实现这一点有什么建议吗?

下面是我当前的 y 轴实现

let yAxis = SChartNumberAxis()
yAxis.style.majorGridLineStyle.showMajorGridLines = true
yAxis.rangePaddingHigh = 500
yAxis.discontinuousTickLabelClipping = SChartDiscontinuousTickLabelClippingHigh
yAxis.axisPosition = SChartAxisPositionReverse
yAxis.style.majorTickStyle.tickGap = -45
goalChart.yAxis = yAxis

更新-下面的答案

谢谢 Sammy,简单地抵消 tickLabel 就解决了我的问题。以下是所用解决方案的副本。

@objc func sChart(chart: ShinobiChart!, alterTickMark tickMark: SChartTickMark!, beforeAddingToAxis axis: SChartAxis!) {
        if !axis.isXAxis() {
            if let label = tickMark.tickLabel {
                label.frame.offset(dx: 0, dy: -8)
            }
        }
}

SChartTickStyle 上的 tickGap 属性 让您可以控制刻度线标签相对于刻度线本身的位置。看来你已经发现了这一点,它并没有提供你需要的力量。

为了更细粒度的控制,你应该看看实现SChartDelegate协议,具体如下方法:

- (void)sChart:(ShinobiChart *)chart alterTickMark:(SChartTickMark *)tickMark
                                beforeAddingToAxis:(SChartAxis *)axis

这使您有机会在将刻度线添加到轴之前对其进行更改。您可以通过 tickLabel 属性 获取标签。有关此方法调用期间可用的其他属性的更多详细信息,请查看 SChartTickMark.

的文档

山姆