ios-charts - Swift - 格式化 ios 图表 PieEntry 标签以包含显示小时和分钟的自定义标签
问题描述
我有一个pieChart
设置为在 24 小时内跟踪用户的时间。
我已经对其进行了编程,以获取用户的自定义事件并跟踪其花费的时间长度(以小时和分钟为单位)。
我一直在尝试更改标签 15.50 和 8.50 并将其自定义为显示 15 小时 30 分钟和 8 小时 30 分钟。
我研究了文档,但我无法找到自定义每个条目标签的方法?
解决方案
您需要创建一个自定义 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())
推荐阅读
- airflow - 如何以表格格式为特定所有者导出最新的气流 dag 和任务状态
- flutter - Flutter IOS & ANDROID Widgets 实现
- c# - C# 中的日期时间结构。为什么 DateTime 用作创建属性“public DateTime Date { get; }”的类型。为什么没有别的。像字符串
- c# - 如何通过 C# 在 Revit 中获取所有参数及其值?
- sql - 带条件sql的左外连接
- c# - 实体类型对应的 CLR 类型不能实例化 Table-per-type
- javascript - TypeError,但不是在 React 返回函数中
- java - Kinesis 数据流不会加载到 s3 存储桶
- python - Tensorflow 对象检测 API - 当我尝试运行 model_builder_test.py 时出现 ImportError
- java - Spring Cloud 合约测试无法正确解析 JSON