1
我有一個Navigation View
(導航欄在頂部),其中有一個scrollView
,以及scrollView
中的幾個文本字段。我設置了代碼,以便在顯示鍵盤時,如果內容隱藏文本字段,則內容向上移動。從前一個視圖中選擇的模式是模式化的,因此它會彈出窗口(在iPad上)。scrollView在鍵盤隱藏後沒有返回到正確的位置
一切正常,但當鍵盤被解散時,scrollView
返回到比原來開始的位置更高的位置(頂部字段隱藏在頂部導航欄後面)。
我發現這個問題是這樣的代碼中:
func keyboardWillBeHidden() {
println("Keyboard will be hidden")
let contentInsets = UIEdgeInsetsZero
scrollView.contentInset = contentInsets
scrollView.scrollIndicatorInsets = contentInsets
}
這個問題該生產線是scrollView.contentInset = contentInsets
。我覺得我需要將44
(導航欄的高度)添加到scrollView
的頂部位置,以便返回到其正確位置,但我不知道如何執行此操作。
我也注意到一旦發生這種情況,scrollView
不能再滾動(它似乎卡住了)。
好吧,我在'keyboardWasShown()'的一個變量中捕獲了'scrollView.contentInset',然後在''scrollView.contentInset''和'scrollView.scrollIndicatorInsets'中設置' keyboardWillBeHidden()'。 雖然這解決了我的問題,但我不知道是否有更好的方法來做到這一點。在故事板內部,'scrollView'隱藏在頂部的_placeholder_導航欄後面; 'scrollView'是完整的600x600。我需要這樣做,因爲在運行時考慮了條形所需的空間,而不是在故事板中考慮。 – user2985898 2015-03-03 17:42:39
我做了同樣的事情,但仍然沒有回到原來的位置 – teapeng 2017-03-09 02:18:58