Swift - 格式化 ios 图表 PieEntry 标签以包括显示小时和分钟的自定义标签

Swift - Format ios Charts PieEntry Label to include custom label that shows hours and minutes

我有一个 pieChart 设置为在 24 小时内跟踪用户的时间。

PieChart Screenshot without event

我已将其编程为获取用户的自定义事件并跟踪其花费的时间长度(以小时和分钟为单位)。

我一直在尝试更改标签 15.50 和 8.50 并将其自定义为显示 15 小时 30 分钟和 8 小时 30 分钟。

我已经研究了文档,但我一直无法找到自定义每个条目标签的方法?

Example of piechart with 1 event

您需要创建自定义 IValueFormatter

public class CustomPieValueFormatter: NSObject, IValueFormatter {
    public func stringForValue(_ value: Double, entry: ChartDataEntry, dataSetIndex: Int, viewPortHandler: ViewPortHandler?) -> String {
        
        let number = modf(value)
        let hour = String(format: "%.0f", number.0)
        let minute = String(format: "%.0f", 60 * number.1)
        return "\(hour) hour \(minute) minute"
    }
}

并将值格式化程序设置为您的 PieChartData

let data = PieChartData(dataSet: dataSet)
        
data.setValueFormatter(CustomPieValueFormatter())