4

我有一个图像。我想沿着路径拖动该图像。路径可以是圆形或矩形。如果图像被触摸和拖动,它应该只沿着路径移动,而不应该离开路径。我曾尝试使用 Core Graphics 和 Core 动画,但找不到正确的方法。我在网上搜索过,但它总是显示如何沿路径移动对象。找不到有关沿路径拖动对象的任何信息。我还发现它们不是 Apple 提供的从 UIBezierPath 中提取点的方法。

他们无论如何都会这样做吗?

4

1 回答 1

0

该类UIBezierPath有一个名为 的实例方法- (BOOL)containsPoint:。使用此方法和 2UIBezierPath秒,您可以检查您的对象是否沿路径移动。

+---------+
|xxxxxxxxx|
|x+-----+x|
|x|     |x|
|x|     |x|
|x|     |x|
|x+-----+x|
|xxxxxxxxx|
+---------+

这里的技巧是使 1 条路径比第一个路径略小(可能是 2 个像素),同时确保两条路径具有共同的中心。您的对象现在必须经过的路径/路线将是贝塞尔路径区域的差异,您可以从调用- (BOOL)containsPoint:.

如果您的对象包含在 bigUIBezierPath中,而不包含在 small 中,那么您知道您走在正确的道路上。

于 2012-10-03T23:17:38.353 回答