阻止iPad键盘过度滚动网页

时间:2012-01-05 01:08:34

标签: ipad scroll multitouch-keyboard

看起来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 个答案:

答案 0 :(得分:0)

我遇到了一个非常类似的问题。这就是我的工作。

我订阅UIKeyboardWillShowNotification以获取键盘大小,然后当滚动视图向上滚动超过键盘高度时,我将滚动偏移设置为键盘高度。