0

我试图复制有时会出现在政治辩论中的“蠕虫”,以代表观众对候选人回答问题的看法。它基本上是一条沿 x 轴动画表示时间的线,在 y 轴上下表示意见。

我看到我可以通过

  1. 创建 UIBezierPath 并将其 moveToPoint/addLineToPoint 方法与预定义的一组坐标一起使用。
  2. 创建一个 CAShapeLayer 并将其路径属性设置为上面的 UIBezierPath。
  3. 创建一个 CABasicAnimation 并将其添加到 CAShapeLayer。

这一切都很好,但我需要通过用户输入实时影响线条(点击按钮向上或向下移动线条),这意味着在上面的第一步中我不能有一组预定义的坐标。该线应该水平移动,除非它接收到用户的输入以使其也垂直移动。

所以我的问题是我该怎么做?我仍然可以以某种方式使用我在上面的要点中描述的方法并进行一些修改,还是我必须使用不同的方法?

非常感谢您的任何建议!

[编辑]

我只是有一个想法,这可能有效,但效率有点低,我不确定创建的路径是否会很短,即不是从起点开始的完整路径,而是当前绘制的路径部分?!如果我做了以下事情怎么办:

  • 创建两个变量lastPointcurrentPoint
  • 重复调用执行以下操作的绘制方法
    1. [路径 moveToPoint: lastPoint];
    2. [路径 addLineToPoint: currentPoint];
    3. 最后一个点 = 当前点;
    4. currentPoint = [self calculateNewPointFromUserInput];
    5. 重复;
4

1 回答 1

0

两点对您来说非常短,您可以获取用户的触摸事件数组,然后从数组中绘制最后 10-15 个点。我认为这将达到您的目的。

于 2012-06-30T04:40:02.863 回答