【发布时间】:2016-09-19 23:58:18
【问题描述】:
所以现在我有一个持久的数据流进入设备,我想在数据进入时实时绘制趋势线。
这是我将测试数据输入系统的方式
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.100f
target:self
selector:@selector(didGetTimerEvent:)
userInfo:nil
repeats:YES];
//
// This is what's in the timer function
//
static CGFloat trigger = 0;
const CGFloat weight = 50;
// the line view, unsurprisingly, is what draws the line
lineView.value = 12 * cosf(trigger) * M_PI * 0.6 + weight;
trigger++;
if (trigger > 100) trigger = 0;
简单对了,就是一条波浪线。
在线视图的 setValue 属性中,它会将值附加到 NSArray。然后它调用一个渲染函数,在该函数中创建一个点并将其添加到 CGPath,然后将其设置为 CAShapeLayer 的路径属性。之后,CAShapeLayer 处理将所述点绘制到屏幕上的细节。
这是绘制经常更新的线条的最佳方式吗?
如果我只在屏幕上放一个图表,分析器中的 CoreAnimation 工具会读取我正在以 25 fps 的速度绘制,所以现在我开始重新考虑我的实现。
【问题讨论】:
标签: ios core-graphics uibezierpath cashapelayer cgpath