iOS图表moveViewToX似乎不起作用

00jrzges  于 2023-03-14  发布在  iOS
关注(0)|答案(3)|浏览(202)

我正在尝试移动当前显示的数据范围,阅读文档后,似乎可以使用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!
}
llew8vvj

llew8vvj1#

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

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

nvbavucw2#

我在iOS上也遇到了同样的问题。moveViewToAnimated对我很有效。

zphenhs4

zphenhs43#

对我来说-顺序很重要,否则moveViewToX不会有任何效果。这个顺序似乎确保了moveViewToX在将图形移动到正确的位置时起作用(我使用timesince 1970作为我的x值)。

lineChartView.xAxis.axisMinimum = startGraphEpoch
    lineChartView.xAxis.axisMaximum = endGraphEpoch
    lineChartView.setVisibleXRange(minXRange: 3600*24, maxXRange: 3600*24)
    lineChartView.data = data
    lineChartView.moveViewToX(startTodayEpoch) //works!

相关问题