在iOS图表中设置时间标签

问题描述

我要在我的应用程序中添加一个基于图表框架的折线图,该图表旨在绘制一段时间内(在一天内)的值。格式非常简单:浮点数和日期。我为我的xAxis实现了一个格式化程序

extension lineChartViewController: IAxisValueFormatter {
    func stringForValue( _ value: Double,axis _: AxisBase?) -> String {
        let formatter = DateFormatter()
        formatter.dateStyle = .none
        formatter.timeStyle = .short
        return formatter.string(from: Date(timeIntervalSince1970: value))
    }
}

由于我的值介于6:00 am和9:00 pm之间,因此我也进行了计算和设置

lineChartView.xAxis.axisMinimum = xAxisMin
lineChartView.xAxis.axisMaximum = xAxisMax

其中xAxisMinxAxisMax表示为Double

let sod = Calendar.current.startOfDay(for: firstValue)
let startTime = 6.0
let endTime = 21.0

let xAxisMin = sod.timeIntervalSince1970 + startTime * 3600
let xAxisMax = xAxisMin + (endTime - startTime) * 3600

我的图表是准确的,并且值(通过外推法)在6:55 AM,10:43 AM,12:24 PM等处正确对齐,但是我无法在xAxis上获取标签至少是按小时下降,而不是8:20、11:06、1:53

enter image description here

我试图与lineChartView.xAxis.labelCount = 6一起玩而没有任何效果

  • 如何在设置的时间间隔(6:00、9:00、12:00, 3:00等...)

在SO或Github上找不到任何类似的东西,所以在此先感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)