我有一个带有UIImage(一个小红点)的简单动画,使用具有持续时间功能的动画在屏幕上移动。还有一个按钮。当按下按钮时,程序应该获得UIImage当时所在位置的坐标。我尝试使用以下代码来获取坐标,但它们似乎只是获取起始位置和结束位置。
@IBAction func button(sender: AnyObject) {
let dot = Int(redDot.center.y)
print(dot)
}
使用上面的代码,无论何时单击按钮,您都将获得点的起始位置,除非动画完成。然后它将打印结束位置。
感谢任何帮助。
动画代码
func GameLoop(){
UIView.animateWithDuration(GLOBAL_ANIMATION_TIME, animations: {
//Animates Dot
self.redDot.center.y = -25
}) { (true) in
//Resets dot when animation is complete
self.redDot.center.y = UIScreen.mainScreen().bounds.height + 25
}
}
答案 0 :(得分:0)
此答案表示要使用视图的表示层:https://stackoverflow.com/a/7625335/1370336
在你的情况下,这将是这样的:
@IBAction func button(sender: AnyObject) {
if let presentationLayer = redDot.layer.presentationLayer(),
let frame = presentationLayer.frame {
print("center y: \(frame.midY)")
}