动态获取CGRect坐标

时间:2014-09-14 21:38:56

标签: ios swift coordinates cgrect

我正试图在我的屏幕上获得两个UIImageView之间的距离,为此我计划从图像1(不可移动)中减去图像2(可移动)的中心坐标。 为此,我需要能够动态获取这些图像的坐标,我正在使用这样的东西:

    var centerBoardX = CGRectGetMidX(BlackBoard.frame)
    var centerBoardY = CGRectGetMidY(BlackBoard.frame)
    var centerRoundX = CGRectGetMidX(round1.frame)
    var centerRoundY = CGRectGetMidY(round1.frame)

    println(centerBoardX - centerRoundX)
    println(centerBoardY - centerRoundY)

但即使我在整个屏幕上移动image2,我总是会根据两个UIImageViews的初始坐标获得相同的结果。

怎么了?为什么我只得到初始坐标而不是新坐标? 谢谢!

1 个答案:

答案 0 :(得分:1)

好的,所以我找到了不对的东西。 我的UIImageViews是由框架定义的,我得到了框架的坐标,它们始终是相同的。 为了获得正确的坐标,我需要从对象的超视图中获取信息。 所以工作代码是

var centerBoardX = BlackBoard.superview?.center.x
var centerBoardY = BlackBoard.superview?.center.y
var centerRoundX = Round1.superview?.center.x
var centerRoundY = Round1.superview?.center.y

println(centerBoardX! - centerRoundX!)
println(centerBoardY! - centerRoundY!)

现在它完全奏效了!