2017-12-19 93 views
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! 
} 

答えて

0

グラフにスクロール可能な値が十分にあることを確認してください。グラフに8つの値があり、値を見るために横にスクロールする必要なしにすべてが画面に表示されている場合、moveViewToXはスクロールできないため何もしません。 グラフ上の可視点の範囲を選択できます。範囲を3に設定してから5にスクロールすると、その点が機能します。

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

ありがとうございます。それはそれを解決します。この関数では、ドキュメントは非常に誤解を招くことがあります: "現在のビューポートの左側を指定されたx値に移動します。これはsetNeedsDisplay()を呼び出してチャートを更新します。その説明は、ビューポイントの左端を指定された値に移動するだけでよく、ポイント数に合っているかどうかに依存しないようにしてください。 –

関連する問題