Анимировать изменение размера UIWebView - PullRequest
5 голосов
/ 02 сентября 2010

Мне действительно тяжело пытаться оживить изменение размера UIWebView, и просто не знаю, куда еще идти.

Вот что я хочу сделать: у меня есть два вида, один над другим (представьте себе два квадрата, один поверх другого). Вид сверху - UIWebView, а нижний будет обозначаться как общий UIView (у меня нет проблем с нижним). Я настраиваю два вида каждый раз, когда новый контент загружается просто отлично. У меня также есть кнопка, которая должна скрывать вид снизу или показывать его, в зависимости от его предыдущего состояния.

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

  • Если UIWebView прокручивается до самого дна, он немного «подпрыгивает», прежде чем опускаться (становится больше);

  • Если UIWebView прокручивается до самого верха, он спускается, как и ожидалось, до тех пор, пока за нижним представлением достаточно прокрутки содержимого.

В целом, что я узнал, так это то, что если содержимое, находящееся за нижним видом, БОЛЬШЕ, чем количество изменяемых размеров, прыжков не происходит. В противном случае это так.

Я провел много исследований, задал предыдущий вопрос , и поэтому я предполагаю, что это является следствием ленивой загрузки UIWebView. Этот «прыжок» происходит так, что он автоматически изменяет размеры (показывая весь контент, даже если часть его находится за кадром), а затем перемещается вниз. В противном случае он будет одновременно расширяться и загружать новый контент, что потребует гораздо большей мощности процессора.

Я экспериментировал с рамками, границами и центрами, и до сих пор не получил ничего. Правильно ли мое предположение? Нет ли простого способа изменить размер, чтобы изменить размер UIWebView, чтобы он уменьшался (при увеличении) и сохранял нижнюю прокрутку?

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

Если у кого-то есть опыт, пожалуйста, поделитесь. И большое спасибо.

1 Ответ

0 голосов
/ 03 сентября 2010

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

...