iphone弹出键盘时取消滚动动画

Posted

技术标签:

【中文标题】iphone弹出键盘时取消滚动动画【英文标题】:Canceling the scrolling animation when keyboard pops up on iphone 【发布时间】:2011-08-18 15:02:55 【问题描述】:

我有一个包含UITextFieldUIViewController。我将文本字段的inputAccessory 设置为我创建的UIToolbar。 我的 ViewController 的视图在 UIScrollView 里面(处理键盘弹出的事件)

之前:

现在,当键盘弹出时,突然我的 ScrollView 将它的 contentOffset.y 设置为 64 并带有动画,所以我的部分视图被推到了屏幕顶部:

之后:

这是由框架完成的,因为我使用的是 inputAccessoryView 的工具栏。 如果我要放下工具栏,则没有动画和内容偏移。

有谁知道如何禁用此自动动画和滚动?

谢谢!

【问题讨论】:

【参考方案1】:

您可以使用布尔标志和UIScrollViewDelegate 的组合来防止滚动发生。滚动视图委托可用于检测何时发生滚动、修改滚动类型以及简单地防止它发生,因此您最好的方法可能是研究检测键盘何时上升(通过通知或文本字段委托,以更合适的为准)并将其与滚动视图委托结合使用。

【讨论】:

如果内容偏移量改变了,还会调用委托方法吗?

以上是关于iphone弹出键盘时取消滚动动画的主要内容,如果未能解决你的问题,请参考以下文章

如何在单击按钮时弹出默认的iphone键盘

iPhone:滚动网页视图时需要保持键盘向上吗?

iPhone - 出现键盘时如何滚动 UITextField 并调整 UITextView 的大小

在 iPhone 上打开键盘时 Cordova 应用程序滚动

iPhone webview 键盘上推布局并保持不变

(iphone) uiscrollview 触摸。取消内容触摸并开始滚动