iOS 图表 moveViewToX 似乎不起作用

问题描述 投票:0回答:3

我正在尝试移动当前显示的数据范围。阅读文档,似乎我应该可以使用

moveViewToX
函数将视图的左侧移动到给定的x值。

我制作了一个测试代码,其中包含 1 个带有按钮的视图。当在模拟器中加载视图时,图形会正确显示。单击按钮时,它会调用

moveViewToX
。但是,当我单击按钮时没有任何反应(单击按钮时打印文本打印到控制台,图形视图保持不变)。

import Charts
import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    //Setup Test Chart
    self.lineChartView.data = LineChartData(dataSet: lineChartDataSet())

}


fileprivate func lineChartDataSet() -> LineChartDataSet {
    var dataEntries = [ChartDataEntry]()
    dataEntries.append(ChartDataEntry(x: 1, y: 2))
    dataEntries.append(ChartDataEntry(x: 3, y: 5))
    dataEntries.append(ChartDataEntry(x: 5, y: 10))
    dataEntries.append(ChartDataEntry(x: 6, y: 2))
    dataEntries.append(ChartDataEntry(x: 10, y: 15))
    dataEntries.append(ChartDataEntry(x: 12, y: 7))
    dataEntries.append(ChartDataEntry(x: 20, y: 10))
    dataEntries.append(ChartDataEntry(x: 30, y: 15))

    return LineChartDataSet(values: dataEntries, label: "Test Data")
}

@IBAction func buttonClick(_ sender: UIButton) {
    print("Button clicked")
    self.lineChartView.moveViewToX(5)
}
@IBOutlet weak var lineChartView: LineChartView!
}
ios swift ios-charts
3个回答
3
投票

确保图形具有足够的值以使其可滚动。如果图形有 8 个值并且它们都显示在屏幕上而不需要滚动到一边来查看值,则意味着 moveViewToX 不会执行任何操作,因为它无法滚动。 您可以选择图表上可见点的范围,如果您将范围设置为 3,然后滚动到 5,它将起作用。

self.lineChart.setVisibleXRange(minXRange: 3.0, maxXRange: 3.0)
self.lineChart.moveViewToX(5)

0
投票

我在 iOS 上遇到了同样的问题。

moveViewToAnimated
对我有用。


0
投票

对我来说——顺序很重要,否则 moveViewToX 不会有任何效果。这个命令似乎确保 moveViewToX 能够将图形移动到正确的位置(我使用 timeSince1970 作为我的 x 值)。

    lineChartView.xAxis.axisMinimum = startGraphEpoch
    lineChartView.xAxis.axisMaximum = endGraphEpoch
    lineChartView.setVisibleXRange(minXRange: 3600*24, maxXRange: 3600*24)
    lineChartView.data = data
    lineChartView.moveViewToX(startTodayEpoch) //works!
© www.soinside.com 2019 - 2024. All rights reserved.