我有一张图片。我想沿路径拖动该图像。路径可以是圆形或矩形。如果正在触摸和拖动图像,它应该只沿着路径行进,不应该离开路径。我曾尝试使用Core Graphics和Core动画,但找不到正确的方法。我在网上搜索过,但它总是显示如何沿着路径移动对象。找不到有关沿路径拖动对象的任何信息。此外,我发现它们是由Apple提供的NO方法,用于从UIBezierPath中提取点。
他们无论如何都这样做?
答案 0 :(得分:0)
UIBezierPath
类有一个名为- (BOOL)containsPoint:
的实例方法。使用此方法和2 UIBezierPath
s,您可以检查对象是否沿路径移动。
+---------+
|xxxxxxxxx|
|x+-----+x|
|x| |x|
|x| |x|
|x| |x|
|x+-----+x|
|xxxxxxxxx|
+---------+
这里的技巧是使1条路径略小于第一条路径(可能是2个像素),同时确保两条路径都有一个共同的中心。您的对象现在必须行进的路径/路径将是您从调用- (BOOL)containsPoint:
获得的贝塞尔路径区域的差异。
如果您的对象包含在大UIBezierPath
内,而不是小对象中,那么您就知道自己处于正确的路径上。