Мне сложно перенести библиотечные диаграммы (от Дэниела Гинди) с версии 2 (Swift 2.3) на 3 (Swift 3).
По сути, я не могу правильно выровнять метки x (даты) с соответствующими графиками.
Это то, что у меня было раньше в версии 2:
В версии 2 у меня были значения для дней 7, 8, 10 и 11. Таким образом, мне не хватало дня в середине, но метки были правильно выровнены с графиками.
А вот что у меня в версии 3:
В версии 3 «метки» на оси x теперь заменены на double (для дат это timeInterval с 1970 года) и отформатированы с помощью средства форматирования. Итак, несомненно, график теперь более "правильный", поскольку диаграмма правильно экстраполирует значение для 9-го числа, но я не могу найти, как поставить метки под соответствующими графиками.
Это мой код для оси x:
let chartView = LineChartView()
...
let xAxis = chartView.xAxis
xAxis.labelPosition = .bottom
xAxis.labelCount = entries.count
xAxis.drawLabelsEnabled = true
xAxis.drawLimitLinesBehindDataEnabled = true
xAxis.avoidFirstLastClippingEnabled = true
// Set the x values date formatter
let xValuesNumberFormatter = ChartXAxisFormatter()
xValuesNumberFormatter.dateFormatter = dayNumberAndShortNameFormatter // e.g. "wed 26"
xAxis.valueFormatter = xValuesNumberFormatter
Вот созданный мной класс ChartXAxisFormatter:
import Foundation
import Charts
class ChartXAxisFormatter: NSObject {
var dateFormatter: DateFormatter?
}
extension ChartXAxisFormatter: IAxisValueFormatter {
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
if let dateFormatter = dateFormatter {
let date = Date(timeIntervalSince1970: value)
return dateFormatter.string(from: date)
}
return ""
}
}
Итак, значения здесь правильные, форматирование правильное, форма диаграммы правильная, но выравнивание меток с соответствующими графиками плохое. Спасибо за вашу помощь