When using UIView
animation methods to animate various properties, the animation is actually performed on something called the presentation layer. But when you use the view's frame
accessor, it accesses the model layer (rather than the presentation layer), which holds the latest values (so it holds the designated frame after animation).
You should check for "luke"'s location using luke.layer.presentationLayer.frame
.