2017-01-24 10 views
0

У меня есть простая анимация с UIImage (маленькая красная точка), движущаяся по экрану с использованием анимации с функцией продолжительности. Существует также кнопка. Когда кнопка нажата, программа должна получить координаты, где UIImage находится в этот момент. Я попытался использовать следующий код, чтобы получить координаты, но они только, кажется, получают начальное местоположение и конечное местоположение.Отслеживание координат объекта во время Swift animationWithDuration

@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

Этот ответ говорит, чтобы использовать презентационный слой вашего зрения: 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)") 
}