Не позволяйте клавиатуре iPad слишком сильно прокручивать веб-страницу - PullRequest
7 голосов
/ 05 января 2012

Похоже, что клавиатура Safari работает на iPad следующим образом ...

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

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

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

В портретном режиме на iPad следующая веб-страница всегда отображается, даже когда текстовое поле активно и клавиатура показывает: http://sky -walker.net / температура / Ipad / а

Но когда вы просматриваете эту веб-страницу в альбомном режиме и выбираете нижнее текстовое поле, веб-страница прокручивается так, что нижнее текстовое поле находится посередине экрана. Я хочу, чтобы он был внизу экрана.

http://sky -walker.net / TEMP / Ipad / б

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

В портретном режиме предыдущая ссылка изначально не заполняет экран, поэтому, если вы щелкнете по нижнему текстовому полю (заставит появиться клавиатуру), она прокрутится вверх, чтобы она оказалась посередине экрана.

* ** тысяча тридцать один тысяча тридцать два * -walker.net / температур / Ipad / д Последняя ссылка также заполняет весь экран в портретном режиме, и при выборе нижнего текстового поля она не прокручивается за нижнюю часть веб-страницы, когда клавиатура становится видимой.

Возможно, когда веб-страница не заполняет экран, она запоминает пустое пространство внизу, а затем прокручивается вверх (скрывая верх), когда клавиатура видна. Я хочу, чтобы он забыл о пустом месте внизу при появлении клавиатуры.

1 Ответ

0 голосов
/ 03 июня 2016

Я столкнулся с очень похожей проблемой. Вот что я делаю.

Я подписываюсь на UIKeyboardWillShowNotification, чтобы получить размер клавиатуры, затем, когда представление прокрутки прокручивается больше, чем высота клавиатуры, тогда я устанавливаю смещение прокрутки на высоту клавиатуры.

...