Use center and bounds for the animation instead of frame. From the docs for animating the frame property:
"Changes to this property can be animated. However, if the transform property contains a non-identity transform, the value of the frame property is undefined and should not be modified. In that case, you can reposition the view using the center property and adjust the size using the bounds property instead."