iOS图表减慢了我的应用程序

时间:2015-09-07 07:49:00

标签: ios iphone swift ios-charts

我正在使用ios-chart来展示我制作的日历。我目前正在使用LineChart来绘制我的数据,并且我在一个图表中为一年中的每一天绘制1点。所以我在一张图表中绘制了365点。绘制它需要1秒钟。这不是一个大问题,除了我将我的日历设为TableViewCell,一旦TableViewCellContentView之外滚动然后向后滚动,这将导致非常hacky滚动再次(所以细胞被重绘)。令人感到奇怪的是,即使在iPhone 6上也需要很长时间才能获得400点左右。我可能在这里做错了什么?

我的图表设置代码:

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)

每次创建(或重复使用)单元格时,都会执行上述代码。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题出在每次重复使用单元格时正在设置的数据中。数据创建显然不应该在单元格中,而应该在其他地方。一旦我将数据启动到其他地方,就应该解决。