确定。我已经看过很多类似于我在这里尝试做的主题,但没有什么比得上。也许我的方法远离基础。这是交易。
我在drawRect:中绘制了一个图表到我的UIView子类。然后,我使用UIPanGestureRecognizer将图表的偏移量(内部,而不是视图层次结构)转换为右侧/左侧。这很好用,但我的问题是识别器的动作以相对较低的频率被触发。具体地说,所得到的平移比例如在滚动视图或桌面视图中更加斩波。特别是当我的图表中的点数增加时。现在,我想做的事实上并不是触发平移手势动作的绘制,而是让计时器以每秒30次的速度触发,插入从平移到当前时刻的偏移量。然而,这变得越来越复杂。
有人有建议吗?我真的应该用UIScrollView做这个吗?我不喜欢的原因是数据可能在任何一个方向上延伸得很远,而且我不想一次绘制(或至少存储)整个路径,而只是做当前的部分显示。我应该使用CAShapeLayer吗?在我花了一天时间玩这些可能性之前,我想要一些意见......
最受欢迎的是任何投入/体验。
答案 0 :(得分:1)
所以,最后,我最终将这些东西放在UIScrollView中。我必须做很多工作来完成并运行,复杂的部分是创建一系列PANES,它们将被添加到scrollview中。每个窗格都会向代表询问它需要绘制的数据,然后将它们全部拼接在一起。幸运的是,一旦我将包含图表窗格的滚动视图放入表格视图中,一切都运行良好。仍然没有解决扩展问题,但我在这里看到了一些应该使它相对微不足道的帖子。
这就是我原来问题的答案。不要试图在每个框架上进行平移和绘制,它会起伏不定,并且会使一些真正的黑客攻击,没有什么好办法可以找到它来平滑它。滚动视图可以为您处理所有这些问题,只要您可以很好地拆分视图。我想我可以使用一个长视图,但是当数据集变大时我就遇到了麻烦。
现在我遇到了一个相关的问题 - 当屏幕外的图表滚动到视图中时(它们位于UITableViewCells中),当新图表被绘制时会有一个很大的打嗝。我想我会尝试异步地将它们绘制成图像,这样当新行滚动到视图中时,我已经得到了图像。