0
現在表示されているデータ範囲を移動しようとしています。ドキュメントを読むと、moveViewToX
関数を使用して、ビューの左側を指定されたx値に移動できるはずです。iOSチャートmoveViewToXが動作しないようです。
私はボタン付きの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!
}
ありがとうございます。それはそれを解決します。この関数では、ドキュメントは非常に誤解を招くことがあります: "現在のビューポートの左側を指定されたx値に移動します。これはsetNeedsDisplay()を呼び出してチャートを更新します。その説明は、ビューポイントの左端を指定された値に移動するだけでよく、ポイント数に合っているかどうかに依存しないようにしてください。 –