0

ios-chart作成したカレンダーを表示するために使用しています。私は現在LineChart、自分のデータをプロットするために使用しており、1 つのグラフに 1 年の各日について 1 つのポイントをプロットしています。したがって、1 つのグラフに 365 個のポイントがプロットされています。そして、それを描くのに1秒ほどかかります。これは大きな問題ではありませんが、カレンダーを として持っていることを除いて、が の外側にスクロールされてから再びスクロールされるとTableViewCell、非常にハッキーなスクロールになります (セルが再描画されます)。iPhone 6 でも 400 点ほど描画するのに時間がかかるのは奇妙に感じます。TableViewCellContentView

チャートのセットアップコード:

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)

上記のコードは、セルが作成 (または再利用) されるたびに実行されます。何か案は?

4

1 に答える 1

0

問題は、セルを再利用するたびにセットアップされていたデータにありました。データの作成は明らかにセル内ではなく、別の場所で行う必要があります。データの開始を別の場所に移動したら、解決する必要があります。

于 2015-09-07T08:50:08.773 に答える