我正在尝试获取屏幕上两个 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,我总是会根据两个 UIImageView 的初始坐标得到相同的结果。
怎么了?为什么我只得到初始坐标而不是新坐标? 谢谢!
最佳答案
好的,所以我发现了不对的地方。 我的 UIImageViews 由框架定义,我得到框架的坐标,它们总是相同的。 为了获得正确的坐标,我需要从对象的父 View 中获取信息。 所以工作代码是
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!)
现在一切正常!
关于ios - 动态获取CGRect坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25838277/