2016-04-07 11 views
2

私はチャートライブラリ(danielgindi/Charts)を使用しています。.noDataTextはChart内で更新されません。 Swift 2

私は、日、週、月、および年のオプションを表示するセグメントを持っています。選択された内容に応じてチャートに表示されます。

Iは、以下のコードを有する:

var highestValue : Double = 0.0 
@IBAction func segmentChanged(sender: AnyObject) { 
    switch durationSegment.selectedSegmentIndex 
    { 
    case 0: 
     segmentSelected = "Day" 
     highestValue = 8.0 
    case 1: 
     segmentSelected = "Week" 
     highestValue = 10.0 
    case 2: 
     segmentSelected = "Month" 
     highestValue = 12.0 
    case 3: 
     segmentSelected = "Year" 
     highestValue = 14.0 
    default: 
     break; 
    } 

    print("segment selected = \(segmentSelected)") 
    displayDurationLabel(segmentSelected, providedStartDate : NSDate()) 

} 


func setChart(xValues: [String], valuesCandleChart: [Double], durationToBeDisplayed: String) { 
    chartView.descriptionText = "" 
    print("within setChart, durationToBeDisplayed = \(durationToBeDisplayed)") 
    chartView.noDataText = "No spends logged for \(durationToBeDisplayed)" 
chartView.leftAxis.customAxisMax = highestValue 
} 

のViewControllerが最初に呼ばれ、それはsegmentSelected =「月」を使用し、私は、セグメントを変更すると、チャートは、しかしながら、例えばを正しいメッセージが表示され"Day"、印刷結果は正しい出力を示しますが、 '.noDataText'は期待どおりに更新されません。

任意の助けいただければ幸い:)

答えて

1
  • を、グラフを再描画して更新します、通話終了時:

chartView .notifyDataSetChanged()

  • すぐsetChart関数呼び出しを呼び出した後:

chartView.legend.resetCustom()

1

コールcandleChartView.setNeedsDisplay()をsetChart機能内のテキスト

+0

私は予想通りしかし、それは動作しません、私のsetChart関数の最後でこれを呼ばれます。また、customAxisMaxも更新しません。セグメントの1回のクリックであるようです。私が昼間をクリックして週をクリックすると、それは8.0と表示されます。次に、それをクリックすると10.0に変わります –

関連する問題