Я думаю, что, если я правильно диагностировал вашу проблему, вы получаете масштабируемую анимацию, когда представление начинается крошечным и в какой-то точке, затем масштабируется и перемещается в центр экрана точно так, как вы хотите, но точка, с которой начинается неверно?
Прежде всего, взгляды масштабируются вокруг их центра. Поэтому, если вы вынули перевод и, следовательно, сократили код, вы должны:
self.view.transform = CGAffineTransformMakeScale( 0.001, 0.001);
И ваш обзор в конечном итоге займет весь экран, тогда он будет оставаться в центре по центру экрана, вроде как бы очень далеко, и вы направитесь прямо к нему.
Предположим, что вместо этого вы хотите, чтобы оно росло и переместилось в центр экрана из (x, y), тогда вам нужно что-то более похожее на:
CGPoint locationToZoomFrom = ... populated by you somehow ...;
CGPoint vectorFromCentreToPoint = CGPointMake(
locationToZoomFrom.x - self.view.center.x,
locationToZoomFrom.y - self.view.center.y);
self.view.transform = CGAffineTransformMakeTranslation(vectorFromCentreToPoint.x, vectorFromCentreToPoint.y);
self.view.transform = CGAffineTransformScale( self.view.transform , 0.001, 0.001);
Где locationToZoomFrom будет начальным центром представления, а его нормальный центр в соответствии с его фреймом будет местом назначения.