zoomToRect ничего не делает, если ваш UIScrollView уже на этом уровне масштабирования - PullRequest
4 голосов
/ 22 января 2010

Я думаю, что обнаружил ошибку в UIScrollView, но я хочу проверить, наблюдают ли другие люди то же самое и ожидаемое ли это поведение.

У меня есть UIScrollView, и я пытаюсь установить, на что он смотрит, используя zoomToRect. Это отлично работает. Если я затем перетаскиваю вид, чтобы он смотрел в другом месте, а затем запускаю zoomToRect с теми же значениями, он ничего не делает. Команда zoomToRect делает что-то только в том случае, если необходимо изменить zoomScale, если панорамирование - это все, что нужно, вид просто неподвижен. Поскольку пользователь мог увеличивать или уменьшать масштаб, я просто надеялся использовать zoomToRect и не должен был дважды проверять, будет ли zoomLevels другим.

кто-нибудь еще испытывал это? Так должно быть или это ошибка?

*** Добавление кода по запросу

Первый вызов zoomToRect

[myScrollView zoomToRect:zoomToRect animated:YES];

Вид, направленный правильно на ту точку в UIScrollView, которую я хотел, чтобы она была

Теперь позвольте пользователю перетащить экран и переместить точку, на которую смотрит UIScrollView. Увеличение не происходит, только панорамирование.

Теперь снова вызовите zoomToRect с тем же прямоугольником

[myScrollView zoomToRect:zoomToRect animated:YES];

Ничего не происходит.

Ответы [ 2 ]

3 голосов
/ 24 января 2010

Apple заявила, что это известная ошибка в UIScrollView, и она будет исправлена ​​в следующем выпуске.

https://devforums.apple.com/message/158712#158712

В то же время я работал над этим следующим образом

float zoomBefore = myScrollView.zoomScale;
[myScrollView zoomToRect:zoomToRect animated:YES];
float zoomAfter = myScrollView.zoomScale;
if (zoomBefore == zoomAfter)
{
    [myScrollView setContentOffset:imageCoords animated:YES];
}
0 голосов
/ 16 августа 2011

По умолчанию maximumZoomScale равно 1,0. Таким образом, он не увеличивается при двойном щелчке. установить maximumZoomScale вот так:

myScrollView.maximumZoomScale = 5.0f;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...