TopContainer ViewをしてからScrollviewしてからBottomContainerビューを表示しています。キーボードが表示されているときにオートレイアウトアウトプットを変更する
今、スクロールビューの上端がtopContainerの下端まであり、スクロールビューの下端がbottomcontainerの上端まであるという制約があります。
私はviewcontrollerを起動し、ビュー階層を見ると良いです。
しかし、キーボードが表示されたら、ボトムコンテナが上に移動するように自動レイアウト制約を変更します。
だから私は、私が制約と変化する。このような一定の保存と思った:私はこれを行う際に、キーボードのポップアップアップその後、
private var toolbarBottomConstraint: NSLayoutConstraint?
self.toolbarBottomConstraint = self.toolbar.autoPinEdgeToSuperviewEdge(.Bottom, withInset: 0)
をそして:
func keyboardWillShow(notification:NSNotification){
var userInfo = notification.userInfo!
var keyboardFrame:CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue()
keyboardFrame = self.view.convertRect(keyboardFrame, fromView: nil)
self.toolbarBottomConstraint?.constant = keyboardFrame.size.height
}
これは何もしません。 。キーボードの高さはちょうど底がキーボードの上にある必要があるオフセットです。
ビューが変更されないのはなぜですか?私は常にそのような定数を変更し、それは常に動作します。今はキーボードを使っているので特別なことをする必要がありますか?
私はすでにこれを試して、動作しません。別のビューでこれを行う必要がありますか? – user1007522
私は 'setNeedsLayout'の代わりに' self.view.layoutIfNeeded() 'でなければなりません。それでも動作しない場合は、制約をチェックする必要があります。変更する制約は、ビューコントローラのビューからスクロールビューに接続されているものでなければなりません。 – Dario