我正在尝试使用Pod'Charts'将值绘制为线性图,我在一秒钟内通过蓝牙硬件接收了200个值,我需要全部绘制它们,我面临的问题是,有一个很大的绘图延迟,图形非常生涩。
这是我的图形设置功能:
@IBOutlet weak var chartView: LineChartView!
func setChart(){
let set_a: LineChartDataSet = LineChartDataSet(values: [ChartDataEntry](), label: "a")
set_a.drawCirclesEnabled = false
set_a.setColor(.blue)
chartView.data = LineChartData(dataSet: set_a)
chartView.setScaleEnabled(true)
chartView.isUserInteractionEnabled = true
chartView.setDragOffsetX(200)
chartView.scaleYEnabled = true
}
这是图表更新功能:
var i=0
func updateCounter(){
if !stopped{
if recieve{
chartView.data?.addEntry(ChartDataEntry(x: Double(i), y: Double(Constants.values[i])), dataSetIndex: 0)
chartView.notifyDataSetChanged()
chartView.moveViewToX(Double(i+40))
i+=1
}
}else{return}
}
这是我接收值的地方:
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?){
if let data = characteristic.value
{
var values = [UInt8](repeating: 0, count: data.count)
(data as NSData).getBytes(&values, length:data.count)
for value in values
{
Constants.values.append(Double(value))
}
recieve = true
print(values)
updateCounter()
}
}