ChartsOrg/Charts

Barchart Animation type easeInBack crashes

Open

#3 340 ouverte le 14 mars 2018

Voir sur GitHub
 (3 commentaires) (1 réaction) (0 assignés)Swift (6 009 forks)batch import
bughelp wanted

Métriques du dépôt

Stars
 (28 002 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

I have extension extension

BarChartView {
   
   private class BarChartFormatter: NSObject,IAxisValueFormatter {
       
       var values : [String]
       required init (values : [String]) {
           self.values = values
           super.init()
       }
       
       
       func stringForValue(_ value: Double, axis: AxisBase?) -> String {
           return values[Int(value)]
       }
   }
   
   func setChartValues (xAxisValues : [String] , values : [Double],label : String) {
       
       var barChartDataEntries = [BarChartDataEntry]()
       
       for i in 0..<values.count {
           let dataEntry = BarChartDataEntry(x: Double(i), y: values[i])
           barChartDataEntries.append(dataEntry)
       }
       let chartDataSet = BarChartDataSet(values: barChartDataEntries, label: label)
       chartDataSet.colors = ChartColorTemplates.colorful()
       let chartData = BarChartData(dataSet: chartDataSet)

       let formatter = BarChartFormatter(values: xAxisValues)
       let xAxis = XAxis()
       xAxis.valueFormatter = formatter
       self.xAxis.valueFormatter = xAxis.valueFormatter
       self.xAxis.labelPosition = .bottom
       
       self.data = chartData
      // self.data?.notifyDataChanged()
      // self.notifyDataSetChanged()
       
       self.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .easeInBack) // Cause  crash
       
   }
   
}

And app crashes here

for j in 0 ..< Int(ceil(Double(dataSet.entryCount) * animator.phaseX)) // Crash here { guard let e = dataSet.entryForIndex(j) as? BarChartDataEntry else { continue }

Fatal error: Can't form Range with upperBound < lowerBound

(lldb) po dataSet.entryCount 12

(lldb) po animator.phaseX -0.085005447941268492

Please solve this issue

Guide contributeur