如何根据用户拖动视图沿弯曲的CGPath移动UIView

时间:2011-06-15 15:56:31

标签: ios drag cgpath

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

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

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

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

例如(图像波纹管),如果对象位于路径的开头并且用户触摸屏幕上的任何位置并且他的手指从左向右移动我需要对象从左向右移动但是沿着路径移动,也就是说,当它朝着路径的尽头向右走时。

==结束更新

这是我绘制的路径,想象一下,我将有一个用户可以触摸的视图(任何图像)并沿路径拖动它,不需要将手指完全移动到路径上。如果用户从左向右移动,则图像应从左向右移动,但如果需要沿路径移动则向上移动。

The curved path

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

   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);

任何想法我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:0)

你可以采用绘制图形的数学函数,然后沿着这个轨迹移动物体。