Вы можете получить раму движущегося вида из своего presentationLayer
. Вам нужно будет установить NSTimer
, чтобы получить это значение за любой промежуток времени, который вы хотите.
class ViewController: UIViewController {
let block = UIView(frame: CGRect(x: 20, y: 100, width: 80, height: 80))
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
block.backgroundColor = UIColor.redColor()
self.view.addSubview(block)
let timer = NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: "handleTimer", userInfo: nil, repeats: true)
UIView.animateWithDuration(5.0, animations: {() -> Void in
self.block.frame = CGRect(x: 300, y: 400, width: 80, height: 80)
}) { (finished) -> Void in
timer.invalidate()
}
}
func handleTimer() {
println(block.layer.presentationLayer().frame.origin.y)
}
}
Большое вам спасибо! Я думаю, что трюк заключается в использовании presentationLayer(), а не только .frame.origin.y – user2507194