Jon*_*asG 7 plot drawing graph core-graphics ios
我正在寻找一种方法在iOS上有效地绘制具有大量点(最多10 000)的折线图.该图获取实时数据,需要每秒多次更新.我正试图找出一种有效绘制图形的方法,因此它不会最大化CPU并在绘制时阻止主线程.
我正在创建一个UIBezierPath
折线图,在后台线程中,添加所有点并将其绘制在CALayer中(启用了异步绘图).它不是很快,最大化CPU和绘图是如此之慢,UI变得迟钝.我绘制实时数据,并在理论上我可以重复使用相同的UIBezierPath
每一次,只是追加新的点,但是旧的值一段时间后丢弃,这意味着已删除值的点都必须从贝塞尔路径中去除,这是不可能的.
我没有在iOS上有效地绘制大型数据集的任何内容,但我希望有方法可以使用GPU来提高性能.
我终于找到了用OpenGL绘制图形的实现:https://github.com/syedhali/EZAudio/blob/master/EZAudio/EZAudioPlotGL.m
实际上非常简单,而且性能的提升是巨大的。
对于配备 A7 芯片(或更新版本)的设备,用金属绘制图形可能会更快,这也应该很容易。有一些关于如何执行此操作的指南:https ://www.raywenderlich.com/77488/ios-8-metal-tutorial-swift-getting-started
归档时间: |
|
查看次数: |
1696 次 |
最近记录: |