次の問題があります。ログインやパスワードのテキストフィールドにフォーカスが上にあるとき制約をプログラムで更新し、ログイン画面のキーボードの問題を解決する方法
私は、このログイン画面
を持って、私たちは、キーボードを示します。キーボードが私の意見を覆います。
だから私は、オブザーバーと通知センターを作り、メソッドを実現しようとした:
@objc func kbDidShow(notification : NSNotification) {
guard let userInfo = notification.userInfo else { return }
let kbFrameSize = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
(self.view as! UIScrollView).contentSize = CGSize(width: self.view.bounds.size.width, height: self.view.bounds.size.height + kbFrameSize.height)
(self.view as! UIScrollView).scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: kbFrameSize.height, right: 0)
}
ので、キーボードが表示されたら、私はビューのキロバイトのサイズを追加しています。また、私はscrollviewを追加したことがわかります。
私はscrollviewが
しかし
私は私のログインフォームをスクロールしています、まだキーボードでオーバーレイ正しいうまくいくと思います。私が最後までスクロールすると、グラデーションがあるので、私のビューが繰り返されることがわかります。
私のログインフォームがkbの下にある理由は、最後のボタンが "Забылипароль?"定数92の下限制約があります(別の要素はこのボタンから制約を数え始めます)。私はそれを削除すると、すべて正常に動作しますが、私は下に制約なしで仕事を傾ける。また、私は下からログインフォームを92ptにすることが私にとって非常に重要であるため、上限制約を使用するように変更を変更することはできません。
解決策私の考えでは、私のボタン「забылипароль」の既存の制約を追加することでしょう。既存の制約+ kbの高さ。
どうすればいいですか?
私のbytton "Забылипароль?" forgotPasswordという名前のコードで
2番目の質問は、ユーザーがログイン時にパスワードフィールドを設定したときに、ログインフォームの円滑なスクロールをアニメーションに追加する方法です。キーボードが隠されているとき は私がIBOulet
として下のボタンの中央
Ok、cool!それは私のために働くが、キーボードと同期させる方法を教えてくれますか?私は時間0.3を試しましたが、変化するconstrainstだけがkbが現れました。 – WhoIsDT
再生がスムーズになるまでの継続時間で再生すると、ビューが消えるとオブザーバーを削除することも忘れないでください –