1

行。我已经看到了很多与我在这里尝试做的类似的主题,但没有什么完全匹配的。也许我的方法是离谱的。这是交易。

我在 drawRect: 中为我的 UIView 子类绘制图表。然后我使用 UIPanGestureRecognizer 将图表的偏移量(内部,不在视图层次结构中)转换为右/左。这很好用,但我的问题是识别器的动作以相对较低的频率触发。具体来说,生成的平移比滚动视图或表格视图中的平移要不稳定得多。特别是当我图表中的点数增加时。现在,我想做的实际上并不是从平移手势的动作中触发绘图,而是让计时器以每秒 30 次的速度触发,插入从平移触发到当前时刻的偏移量。然而,这变得越来越复杂。

有人有建议吗?我真的应该用 UIScrollView 来做这件事吗?我不想这样做的原因是数据可能会在任一方向上延伸很远,我不想一次绘制(或至少存储)整个路径,而只需执行当前的部分显示。我应该使用 CAShapeLayer 吗?在我再花一天时间研究这些可能性之前,我想要一些输入......

非常欢迎任何输入/经验。

4

1 回答 1

1

所以,最后,我最终把这些东西放在了 UIScrollView 中。我必须做很多工作才能启动并运行它,复杂的部分是创建一系列将添加到滚动视图中的 PANES。每个窗格都向代表询问它需要绘制的数据,然后将它们全部拼接在一起。幸运的是,一旦我将这些包含图表窗格的滚动视图放入表格视图中,一切都很好。仍然没有解决缩放问题,但我在这里看到了一些帖子,这应该使它相对微不足道。

这就是我原来问题的答案。不要试图在每一帧上平移和绘图,它会很不稳定,并且会暴露一些真正的黑客,我找不到平滑它的好方法。滚动视图可以为您处理所有这些问题,只要您可以很好地拆分视图。我想我可以使用一个长视图,但是当数据集变大时,我就有麻烦了。

不过,现在我遇到了一个相关的问题——当屏幕外图表滚动到视图中时(它们在 UITableViewCells 中),在绘制新图表时会出现很大的问题。我想我会尝试将它们异步绘制到图像中,这样当新行滚动到视图中时,我已经得到了图像。

于 2012-03-30T20:00:47.373 回答