Как динамически восстановить уровень масштабирования и положение UIScrollView при повторном запуске моего приложения? - PullRequest
4 голосов
/ 17 марта 2009

Мое приложение состоит из UIImageView внутри UIScrollView, и я отображаю большое изображение внутри него. Представление прокрутки позволяет пользователю увеличивать / уменьшать изображение, и кажется, что все работает нормально.

Однако, когда мое приложение завершается, а затем повторно запускается, UIScrollView снова отображает изображение с исходным уровнем масштабирования (который в настоящее время настроен на отображение всего изображения, масштабируя его в режиме «подгонки» ).

Мне бы очень хотелось иметь возможность перезапустить мое приложение и снова открыть UIScrollView с теми же параметрами, которые были установлены при завершении работы приложения. Так что, если мое изображение в настоящее время увеличено до максимума и прокручено до самого левого нижнего угла, это должно быть представление при повторном открытии приложения.

Как я могу это сделать?

Ответы [ 4 ]

3 голосов
/ 25 марта 2009

Проверьте свойство .transform представления. Если вы увеличили масштаб, это следует изменить. Сохраните и восстановите его при следующем запуске.

2 голосов
/ 02 марта 2010

Я делаю это так: При выходе сохраните уровень масштабирования (myScrollview.zoomScale) и источник кадра просмотра содержимого.

При повторном открытии вы можете установить масштаб увеличения. Вы также должны установить размер содержимого на новый уровень масштабирования, так как в противном случае границы будут неправильными.

    [myScrollview setZoomScale:savedZoomScale];
    CGSize newsize = CGSizeMake(origsize.width * savedZoomScale, 
                                 origsize.height * savedZoomScale);
    myScrollview.contentSize = newsize;

Чтобы установить смещение:

[myScrollView setContentOffset:savedFrameOrigin animated:YES];
2 голосов
/ 08 мая 2009

Я нашел способ программно увеличить UIScrollView. Это может помочь вам установить желаемый уровень масштабирования при запуске.

Пример кода вместе с классом ZoomScrollView, который инкапсулирует требуемую магию масштабирования и подробное обсуждение того, как (и почему) работает масштабирование UIScrollView, доступен по адресу github.com / andreyvit / ScrollingMadness / .

2 голосов
/ 17 марта 2009

Кто-то спросил это некоторое время назад, но я не думаю, что вам понравится ответ . Надеюсь, вы получите лучший.

...