2015-09-07 55 views
0

我使用ios-chart來呈現我創建的日曆。我目前使用LineChart來繪製我的數據,並在一個圖表中繪製一年中每一天的1點。所以我有365點繪製在一張圖表中。它需要1秒鐘來繪製它。這不是一個大問題,除了我的日曆爲TableViewCell,一旦TableViewCellContentView之外滾動,然後再次滾動(因此單元格被重繪),這將導致非常黑客的滾動。感到奇怪的是,即使在iPhone 6上也需要花費很長時間才能獲得400分。我可能在這裏做錯了什麼?圖表iOS-charts減慢我的應用程序

我的設置代碼:

lineChart.descriptionText = "" 
     lineChart.drawGridBackgroundEnabled = false 
     lineChart.userInteractionEnabled = false 
     lineChart.xAxis.drawAxisLineEnabled = false 
     lineChart.xAxis.drawGridLinesEnabled = false 
     lineChart.xAxis.drawLabelsEnabled = false 
     lineChart.drawBordersEnabled = false 
     lineChart.leftAxis.enabled = false 
     lineChart.rightAxis.enabled = false 
     lineChart.legend.enabled = false 
     lineChart.contentMode = .ScaleAspectFill 

     var xVals = [String]() 
     var dataSet = LineChartDataSet(yVals: [ChartDataEntry]()) 
     for (index, value) in enumerate(plotData){ 
      dataSet.addEntry(ChartDataEntry(value: Float(value), xIndex: index)) 
      xVals.append("\(index)") 
     } 

     dataSet.setColor(Colors.whiteColor()) 
     dataSet.lineWidth = 1.0 
     dataSet.circleRadius = 0.0 
     dataSet.drawCirclesEnabled = false 
     dataSet.drawValuesEnabled = false 
     dataSet.drawFilledEnabled = true 
     dataSet.fillColor = Colors.whiteColor() 
     dataSet.fillAlpha = 0.1 
     dataSet.valueTextColor = Colors.whiteColor() 

     lineChart.data = LineChartData(xVals: xVals, dataSet: dataSet) 

上述代碼被每個小區被創建(或重複使用)的時間內完成。有任何想法嗎?

+0

您是否嘗試過在[工具] [時間模式](https://developer.apple.com/library/ios/documentation/AnalysisTools/Reference/Instruments_User_Reference/TimeProfilerInstrument/TimeProfilerInstrument.html)(https://開頭開發商.apple.com /庫/ IOS /文檔/ DeveloperTools /概念/ InstrumentsUserGuide /簡介/ Introduction.html)? – Mats

+0

@Mats以前從未使用過。謝謝,找到了瓶頸:)!與ios-charts無關。根據MVC, – ClockWise

回答

0

問題出在我每次重新使用單元格時正在設置的數據中。數據創建顯然不應該在一個單元格中,而應該在其他地方。一旦我將我的數據移動到其他地方,應該解決。

+0

顯然是真的 – Injectios