У нас нет простого способа изменить вращающуюся точку привязки этикеток.Но вы можете определить свой собственный класс XAxisRenderer
и переопределить функцию renderAxisLabels
.Я сделал простой пример и надеюсь, что это поможет вам двигаться в правильном направлении.Я удалил весь ненужный код из функции renderAxisLabels
и изменил опорную точку с (x: 0.5, y: 0.0) на (x: 0.8, y: 0.0)
Определение пользовательского средства визуализации
class MyXAxisRenderer: XAxisRenderer {
override func renderAxisLabels(context: CGContext)
{
guard let xAxis = self.axis as? XAxis else { return }
if !xAxis.isEnabled || !xAxis.isDrawLabelsEnabled
{
return
}
let yOffset = xAxis.yOffset
guard xAxis.labelPosition == .bottom else { return }
let customAnchorPoint = CGPoint(x: 0.8, y: 0.0) // custom anchor point, default value is (x: 0.5, y: 0.0)
drawLabels(context: context, pos: viewPortHandler.contentBottom + yOffset, anchor: customAnchorPoint)
}
}
и используйте его.
chartView.xAxis.labelRotationAngle = -45
chartView.xAxis.labelPosition = .bottom
chartView.xAxisRenderer = MyXAxisRenderer(viewPortHandler: chartView.viewPortHandler, xAxis: chartView.xAxis, transformer: chartView.getTransformer(forAxis: .left))