在Swift animationWithDuration期间跟踪对象的坐标

时间:2017-01-24 03:28:45

标签: ios swift animation uiimage coordinates

我有一个带有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
    }

}

1 个答案:

答案 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)")
}