【问题标题】:How to move an UIView along a curved CGPath according to user dragging the view如何根据用户拖动视图沿弯曲的 CGPath 移动 UIView
【发布时间】:2011-06-15 15:56:30
【问题描述】:

我正在尝试构建一个用户可以在屏幕上移动手指的界面,并且图像列表沿路径移动。这个想法是图像中心永远不会离开路径。

我发现的大部分内容都是关于如何使用 CGPath 制作动画,而不是实际使用路径作为用户移动的轨迹。

== 更新。更好的描述 ==

即使用户没有在路径上移动手指,我也需要在路径上跟踪对象。

例如(下图),如果对象位于路径的开头,并且用户触摸屏幕上的任何位置并将手指从左向右移动,我需要对象从左向右移动但遵循路径,也就是在路径的尽头向右移动。

== 结束更新

这是我绘制的路径,假设我将有一个用户可以触摸并沿路径拖动的视图(任何图像),无需将手指精确地移动到路径上。如果用户从左到右移动,图像应该从左到右移动,但如果需要沿着路径向上移动。

这就是我创建路径的方式:

   CGPoint endPointUp = CGPointMake(315, 124);
    CGPoint endPointDown = CGPointMake(0, 403);
    CGPoint controlPoint1 = CGPointMake(133, 187);
    CGPoint controlPoint2 = CGPointMake(174, 318);

    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, endPointUp.x, endPointUp.y);
    CGPathAddCurveToPoint(path, NULL, controlPoint1.x, controlPoint1.y, controlPoint2.x, controlPoint2.y, endPointDown.x, endPointDown.y);

知道我该如何实现这一目标吗?

【问题讨论】:

标签: ios drag cgpath


【解决方案1】:

你可以用一个数学函数绘制一个图形,然后沿着这个轨迹
对象移动。

【讨论】:

  • 对哪个数学函数有任何想法?
  • 例如看正弦方程(图)或看二次方程(图)。
  • 谢谢,我会搜索这个方程。但是,如果您有任何类似的算法,我将不胜感激。
  • 我只有抛物线算法
  • 我刚刚为三次贝塞尔曲线做了一个算法,它奏效了。 :)
猜你喜欢
  • 1970-01-01
  • 2010-11-11
  • 2013-11-29
  • 2020-05-28
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
相关资源
最近更新 更多