Я делаю что-то похожее.В моем случае я отключаю zoomin в просмотре прокрутки, устанавливая min и maxzoomscale равными 1.
Мой обработчик пинча тогда просто вычислит коэффициент масштабирования из параметров жестов и скажет представлению, содержащемуся в просмотре прокрутки, перерисовать.Это будет обрабатывать само масштабирование.Ручка зажима должна ограничивать коэффициент масштабирования.Помните, что коэффициент масштабирования, передаваемый из распознавателя жестов, - это не абсолютный масштаб, а дельта из последнего события.
Вам нужно сделать что-то вроде этого:
...
float lastScale = 1;
...
- (void) pinchGestureRecognizer:(UIPinchGestureRecognizer*) recognizer
{
float newScale = self.myScale + ( recognizer.scale - lastScale )
self.myDrawing.scale = newScale;
if ( recognizer.state === UIGestureRecognizerStateEnded )
{
lastScale = 1;
return;
}
lastScale = recognizer.scale;
[self.myDrawing setNeedsDisplay];
}
То есть сверхумоя голова, надеюсь, поможет
Моя точная ситуация немного отличается, так как я вручную рисую некоторые SVG-векторы, но принципы должны быть довольно похожи