Не позволяйте клавиатуре iPad слишком сильно прокручивать веб-страницу
Похоже, клавиатура Safari работает на iPad следующим образом...
Если веб-страница изначально достигает нижней части экрана, при появлении клавиатуры она никогда не прокручивается за нижнюю часть веб-страницы.
Если веб-страница изначально не достигает нижней части экрана, а текстовое поле с фокусом находится на полпути вниз по экрану, она прокручивает веб-страницу так, что текущее текстовое поле теперь находится на полпути вниз по экрану, и ему все равно, область ниже оригинальной веб-страницы показывает.
По сути, я хочу иметь веб-страницу, которая не заполняет экран по вертикали, и все же я не хочу, чтобы клавиатура заставляла экран прокручиваться за нижнюю часть веб-страницы, потому что это скрыло бы верхнюю часть веб-страницы и вместо этого показывало бы пустая область под веб-страницей.
В портретном режиме на iPad следующая веб-страница всегда отображается, даже когда текстовое поле активно и клавиатура отображается: http://sky-walker.net/temp/ipad/a/
Но когда вы просматриваете эту веб-страницу в альбомном режиме и выбираете нижнее текстовое поле, веб-страница прокручивается так, что нижнее текстовое поле находится посередине экрана. Я хочу, чтобы это было внизу экрана.
http://sky-walker.net/temp/ipad/b/
В альбомном режиме предыдущая ссылка заполняет весь экран, поэтому при щелчке по нижнему текстовому полю (после прокрутки) текстовое поле появляется в нижней части экрана, когда клавиатура видна, а не при прокрутке экрана до тех пор, пока текстовое поле не окажется на полпути вниз по экрану.,
В портретном режиме предыдущая ссылка изначально не заполняет экран, поэтому, если вы щелкнете по нижнему текстовому полю (чтобы клавиатура появилась), она прокручивается вверх, так что она наполовину вверх по экрану.
http://sky-walker.net/temp/ipad/d/ Последняя ссылка заполняет весь экран и в портретном режиме, и когда выбрано нижнее текстовое поле, оно не прокручивается за нижнюю часть веб-страницы, когда клавиатура становится видимой.
Возможно, то, что он делает, когда веб-страница не заполняет экран, заключается в том, что он запоминает пустое пространство внизу, а затем прокручивается вверх (скрывая верх), когда клавиатура видна. Я хочу, чтобы он забыл о пустом месте внизу, когда появится клавиатура.
1 ответ
Я столкнулся с очень похожей проблемой. Вот что я делаю.
Я подписываюсь на UIKeyboardWillShowNotification, чтобы получить размер клавиатуры, затем, когда представление прокрутки прокручивается выше, чем высота клавиатуры, тогда я устанавливаю смещение прокрутки на высоту клавиатуры.