MacOs Swift 条形图表对使用 chartValueSelected

我正在使用 Daniel (https://github.com/danielgindi/Charts) 的图表来创建条形图 (MacOS)。为简单起见,Master 分支中的演示条形图示例不会响应用户单击条形图(与我的实现结果相同,因此我也使用演示进行了测试。如果我能让 Demo 工作,它应该也修复我的。)

func testDemo()
{
    // Do any additional setup after loading the view.
    let xArray = Array(1..<10)
    let ys1 = xArray.map { x in return sin(Double(x) / 2.0 / 3.141 * 1.5) }
    let ys2 = xArray.map { x in return cos(Double(x) / 2.0 / 3.141) }
    
    let yse1 = ys1.enumerated().map { x,y in return BarChartDataEntry(x: Double(x),y: y) }
    let yse2 = ys2.enumerated().map { x,y: y) }
    
    let data = BarChartData()
    let ds1 = BarChartdataset(entries: yse1,label: "Hello")
    ds1.colors = [NSUIColor.red]
    data.append(ds1)

    let ds2 = BarChartdataset(entries: yse2,label: "World")
    ds2.colors = [NSUIColor.blue]
    data.append(ds2)

    let barWidth = 0.4
    let barSpace = 0.05
    let groupSpace = 0.1
    
    data.barWidth = barWidth
    self.barChartView.xAxis.axisMinimum = Double(xArray[0])
    self.barChartView.xAxis.axisMaximum = Double(xArray[0]) + data.groupWidth(groupSpace: groupSpace,barSpace: barSpace) * Double(xArray.count)
    // (0.4 + 0.05) * 2 (data set count) + 0.1 = 1
    data.groupBars(fromX: Double(xArray[0]),groupSpace: groupSpace,barSpace: barSpace)

    self.barChartView.data = data
    
    self.barChartView.gridBackgroundColor = NSUIColor.white
    
    self.barChartView.chartDescription.text = "Barchart Demo"
}

我在 viewDidLoad 和以下实现中设置了委托

extension StatisticsBarChart: ChartViewDelegate {
func chartvalueSelected(_ chartView: ChartViewBase,entry: ChartDataEntry,highlight: Highlight)
{
    print(entry)
    print(highlight)
}

func chartvalueNothingSelected(_ chartView: ChartViewBase)
{
    print("nothing selected")
}}

实际上选择了 10 次中的 1 次。但大多数情况下,会打印“未选择任何内容”。所以图表正在工作并且正在调用委托方法。但是点击一个栏几乎是不可能的。有时,点击一个栏会突出显示另一个栏。

要使选择能够正常工作,我缺少什么?我应该能够选择每个条形,并且每次都会调用正确的委托函数。

hopelove1983 回答:MacOs Swift 条形图表对使用 chartValueSelected

这似乎是 master 分支版本 4.0.0+ 中的实际错误

恢复到 3.6.0 版解决了问题

本文链接:https://www.f2er.com/1021.html

大家都在问