2017-12-19 35 views
0

현재 표시된 데이터 범위를 이동하려고합니다. 문서를 읽으면, 내가보기의 왼쪽을 주어진 x 값으로 옮기기 위해 moveViewToX 함수를 사용할 수 있어야합니다.iOS 차트 moveViewToX가 작동하지 않는 것 같습니다.

버튼이있는보기가있는 테스트 코드를 만들었습니다. 뷰가 시뮬레이터에로드되면 그래프가 올바르게 표시됩니다. 버튼을 클릭하면 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()를 호출하여 차트를 새로 고칩니다." 이 설명은 뷰포트의 왼쪽 끝을 주어진 값으로 이동해야하는 것처럼 들리지만 점의 수에 맞는지 여부에 따라 달라지지 않아야합니다. –