You do not need to resort to CAAnimation for this simple thing, just use -[UIScrollView setZoomScale:animated:] , passing YES as the second parameter.
In any case, if you want to change any aspect of the animation, you can use the “UIView animation” instead, since zoomScale not a directly animated CAAnimation property.
Have you tried something like the following?
[UIView animateWithDuration:2.0 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{ [myScrollView setZoomScale:1.0f animated:NO]; } completion:nil];
source share