我有一个ColumnSeries图表,我希望将majorTickLabel
表示为好像悬停在majorGridLine
之上,但我没有看到直接控制标签超出我的位置的方式目前已经实现了标签的嵌入,以便它能够“徘徊”。在图表上方。
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)
}
}
}
答案 0 :(得分:1)
tickGap
上的SChartTickStyle
属性使您可以控制刻度标记相对于刻度标记本身的位置。您似乎已经发现了这一点,而且它并没有提供您所需的能力。
对于更细粒度的控制,您应该考虑实现SChartDelegate
协议,特别是以下方法:
- (void)sChart:(ShinobiChart *)chart alterTickMark:(SChartTickMark *)tickMark
beforeAddingToAxis:(SChartAxis *)axis
这使您有机会在将刻度线添加到轴之前更改刻度线。您可以通过tickLabel
属性获取标签。有关此方法调用期间可用的其他属性的更多详细信息,请查看SChartTickMark
的文档。
SAM