2015-09-07 74 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

相关问题