如何使用iOS Charts库创建一个日期/时间在底部轴上的图表?

7
我目前正在使用iOS图表库Charts,并且在实现x轴的时间线方面遇到了一些问题。
库链接: https://github.com/danielgindi/Charts 我有一个对象列表作为图表的输入。
let objectList : [Object] = fillObjectList()

class Object {
    var timeCreated : Date
    var value : Double
}

我已经实现了一个解决方案,只是使用timeCreated.timeIntervalsince1970作为x轴的值。但这看起来不太好。

所以如果你们有使用iOS Charts库的经验,希望你们能想出一个解决这个问题的办法。非常感谢你们的帮助!


1
你说的“这看起来不太好”,是什么意思?你想实现哪种类型的用户界面? - aiwiguna
1个回答

6
您需要创建一个实现IAxisValueFormatter接口的实现类,代码如下:

注意:我没有编译它,可能需要做一些更改

public class DateValueFormatter: NSObject, IAxisValueFormatter {
    private let dateFormatter = DateFormatter()
    private let objects:[Object]
    
    init(objects: [Object]) {
        self.objects = objects
        super.init()
        dateFormatter.dateFormat = "dd MMM HH:mm"
    }
    
    public func stringForValue(_ value: Double, axis: AxisBase?) -> String {
        if value >= 0 && value < objects.count{
            let object = objects[Int(value)]
            return dateFormatter.string(from: object.timeCreated)
        }   
        return ""
    }
}

并使用此代码格式化

xAxis.valueFormatter = DateValueFormatter(objects: objectList)

编辑: 您可以在此代码库中查看我尝试使用图表库的一些示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接