1

majorTickLabelの上にホバリングしているかのように表現したい ColumnSeries グラフが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

更新 - 以下の回答

サミーに感謝します。 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)
            }
        }
}
4

1 に答える 1

1

tickGapプロパティ onを使用SChartTickStyleすると、目盛り自体に対する目盛りラベルの位置をある程度制御できます。あなたはこれを発見したようで、あなたが必要とする力を提供していないようです.

よりきめ細かい制御を行うには、SChartDelegateプロトコルの実装、具体的には次の方法を検討する必要があります。

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

これにより、軸に追加される前に目盛りを変更することができます。プロパティを介してラベルを取得できtickLabelます。このメソッドの呼び出し中に使用できるその他のプロパティの詳細については、 のドキュメントを参照してくださいSChartTickMark

サム

于 2015-02-27T23:15:09.527 に答える