ios - 图表 lineChartDataset 舍入值

标签 ios swift charts swift3 ios-charts

我正在尝试使用带有 Swift 3.0 的 iOS 图表库做一些事情。 我对 lineChartDataset 值(显示在每个值点上方)的格式有疑问。现在这些值是“双”的,显示为 2.0 和 3.0 而不是 2 和 3 等。是否可以对这些值进行舍入?我尝试使用 numberFormatter 但没有任何效果。任何帮助将不胜感激。

最佳答案

ios-charts 已升级为基于协议(protocol)的方法来呈现各种类型的标签,如 xAxis、yAxis 等。因此您必须实现协议(protocol) IValueFormatter 才能获得所需的结果。我已经创建了相同的类,所以直接使用它如下 & 你将能够达到预期的结果。

创建一个名为 DigitValueFormatter 的类并将其分配给 LineChartData 对象作为 lineChartData.setValueFormatter(DigitValueFormatter())

import Foundation
import Charts

class DigitValueFormatter : NSObject, IValueFormatter {

    func stringForValue(_ value: Double,
                        entry: ChartDataEntry,
                        dataSetIndex: Int,
                        viewPortHandler: ViewPortHandler?) -> String {
        let valueWithoutDecimalPart = String(format: "%.0f", value)
        return "\(valueWithoutDecimalPart)"
    }
}

关于ios - 图表 lineChartDataset 舍入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41644918/

相关文章:

ios - AVAudioSession 从未停止

ios - 如何最好地处理 UITableView 子部分?

ios - 将存档上传到 iTunes 时出错

objective-c - 将 tabelview indexPath.row 作为字符串传递给 VC WebView

javascript - 比较两个具有相同数据名称的饼图 (Highcharts)

ios - 在 Swift 中延迟排序声音

swift - 在涉及 NSHashTable 的特殊情况下不调用 deinit

javascript - 更改 Chart.js 刻度标签的位置

javascript - 使用 Data Cube 进行向下钻取的交互式 BIRT 饼图

ios - stringWithFormat和initWithFormat在ARC中导致不同的值