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())
我有一个 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())