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

时间:2015-03-03 03:41:56

标签: ios xcode6 uinavigationbar scrollview

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

一切正常,但当键盘解除时,scrollView返回的位置高于最初开始的位置(顶部字段隐藏在顶部导航栏后面)。

我发现问题在此代码中:

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

问题的一行是scrollView.contentInset = contentInsets。我觉得我需要将44(导航栏的高度)添加到scrollView的顶部位置,以便它返回到正确的位置,但我不知道如何执行此操作。

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

1 个答案:

答案 0 :(得分:1)

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

稍后编辑结束时,您可以将其设置为相同位置。不要使用硬编码44.