确定被拖动的图像是否在特定区域内

时间:2017-02-14 06:32:13

标签: ios swift uiimageview swift3

我有一个游戏,我在顶层上移动正方形块,在下面的圆圈上方,这是不可移动的。所以当一个块的拖动停止时,我想运行一个check或if语句来查看我正在移动的块(myBlocks [objectDragging])是否在我的圆心的x像素数内(myCircles [objectDragging] ])。 objectDragging只是点击图像的标签。匹配的圆圈将具有相同的标签。一切都很好,我只是无法弄清楚如何检查我正在下降的块(它的中心点)是否在圆心点的这么多像素内。

我正在使用的一些内容:

var myBlocks = [UIImageView]()
var myCircles = [UIImageView]()

let objectDragging = recognizer.view?.tag

if myBlocks[objectDragging!].center.x == myCircles[objectDragging!].center.x {
        ...
        } //this checks for an exact match of center.x where-as I want to check
//if the center.x for myBlocks[objectDragging!] is <= we'll say,
//25, pixels of the myCircles[objectDragging!].center.x

1 个答案:

答案 0 :(得分:0)

在此讨论找到两个CGPoints之间的距离:

How to find the distance between two CG points?

per Lucius(回答2)

  

您可以使用hypot()或hypotf()函数来计算   斜边。给出两点p1和p2:

CGFloat distance = hypotf(p1.x - p2.x, p1.y - p2.y);
pB和p2的myBlocks.center和myCircles.center中的

sub然后

if distance < 25 {
    ...
    }