键盘隐藏后 scrollView 没有返回到正确的位置

scrollView not returning to correct position after keyboard hides

我有一个 Navigation View(导航栏在顶部),其中有一个 scrollViewscrollView 中有几个文本字段。我设置了代码,以便在显示键盘时,如果内容会隐藏文本字段,则内容会向上移动。上一个视图的 segue 是模态的,因此它作为 window 弹出窗口向上滑动(在 iPad 上)。

一切正常,但是当键盘被关闭时,scrollView returns 到比它最初开始的位置更高的位置(顶部字段隐藏在顶部导航栏后面) .

我发现问题出在这段代码中:

func keyboardWillBeHidden() {
    println("Keyboard will be hidden")
    let contentInsets = UIEdgeInsetsZero
    scrollView.contentInset = contentInsets
    scrollView.scrollIndicatorInsets = contentInsets
}

有问题的行是scrollView.contentInset = contentInsets。我觉得我需要将 44 (导航栏的高度)添加到 scrollView 的顶部位置,以便它 returns 到正确的位置,但我不知道如何这样做。

我也注意到,一旦发生这种情况,scrollView 就不能再滚动了(好像卡住了)。

在开始任何编辑之前,您可以存储当前的 scrollview.contentInset。

稍后编辑结束时,您可以将其设置为将其放置在其所属的位置。不要使用硬编码 44。