Извините, что натолкнулся на тему, но это очень важный вопрос. Вы не говорите, реализуете ли вы отдельный распознаватель жестов или используете встроенное масштабирование UIScrollView. Из моих собственных исследований я обнаружил, что если вы просто используете UIScrollView для масштабирования, он вызывает viewForZoomingInScrollView, чтобы получить вид, который вы хотите увеличить. Затем он вызывает scrollViewWillBeginZooming, затем по мере увеличения он несколько раз вызывает scrollViewDidZoom, а когда он закончил, вызывает scrollViewDidEndZooming. Все как и следовало ожидать.
Однако, если вы реализуете свой собственный распознаватель жестов, чтобы сделать масштабирование более плавным или по любой другой причине, он только вызывает viewForZoomingInScrollView при запуске и повторно scrollViewDidZoom. Я думаю, это потому, что вы переопределили встроенную функцию масштабирования, которая вызывает другие методы.
Если вам нужно больше контроля, включите его в метод действия, связанный с распознавателем жеста пинч.