Я думаю, что это может быть не самый очевидный ответ, основанный на том, как был сформулирован мой вопрос.Но я решил проблему следующим образом:
Первый шаг заключается в реализации:
- (void)scrollViewDidEndZooming:(UIScrollView
*)scrollView withView:(UIView *)view atScale:(float)scale;
Ключевой момент , который, как мне казалось, отсутствовал (каким-то образом), заключался в том, чтокогда UIScrollView масштабируется, он затем сбрасывает свой масштабный коэффициент до 1. Так что представьте, что вы увеличили до 125%, а затем уменьшили до 25%, вы бы фактически смотрели на исходное представление на 93% (ish), а не на 100%.,
Это, очевидно, выбрасывает ваш рисунок, если, как и я, вы пытаетесь масштабировать подпредставления по отношению к их первоначальному размеру.
Тогда лучший способ - отслеживать масштаб (яиспользовал переменную scaleTracker ) и затем использовал это значение для масштабирования ваших представлений.
Более конкретно для моей проблемы использовался следующий код:
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
scaleTracker *= scale;
[canvas setTransform:CGAffineTransformIdentity];
canvas.frame = CGRectMake((int)canvas.original.origin.x,
(int)canvas.original.origin.y,
(int)(canvas.original.size.width * scaleTracker),
(int)(canvas.original.size.height * scaleTracker));
}
Удачивсем, кто имеет проблемы с UIScrollView.На данный момент я надеюсь, что это может предложить некоторую помощь всем, кто заинтересован.