我想在 iPhone 上创建一个类似于 Apple 的 Messages 应用程序的 UI。我有一个表格视图和它下面的文本字段。当我选择文本字段时,我会在键盘向上滑动时为表格视图的 contentInset 设置动画,以便内容显示在键盘上方。
我有一些代码使用平移手势识别器来检测用户何时向下滚动表格视图并在发生这种情况时向下动画键盘(如果您看到 Apple 的 Messages 应用程序,它具有关闭键盘的相同功能。向下滚动在表格视图上,当您的手指滑过文本字段时,键盘随之下降)。
这很好用,但是如果表格视图滚动到顶部,并且当键盘向下滑动时我开始更改其内容插图,表格视图会滚动到顶部,然后重新回到顶部,从而导致奇怪的生涩动画。我认为这是因为如果表格视图滚动到顶部,更改 contentInset 会将 contentOffset 重置为表格视图的顶部,这使它表现得很奇怪。
有谁知道如何在不更改其 contentOffset 的情况下更改滚动视图的 contentInset?