更新されたコンストレイントは、既存の一致コンストレイントを見つけて解決を更新できません.
##問題の状況
私はsnapkitでチャットウィンドウTextField UIを作成しています.キーボードがポップアップされるとこのエラーが発生します.
https://github.com/SnapKit/SnapKit/issues/295
https://stackoverflow.com/questions/43462122/update-constraint-does-not-work-on-uitableview-snapkit
このような良い答えはたくさんありますが、私は適用しません.
そして偶然不思議な...
そのSafeAreLayoutGuideを使用すると、Constraintsの更新中にエラーが発生します.
safeAreaを使用する場合は、後でsafeArea用のビューを作成できます.
Snapkitを勉強するみたいRxはいつしますか.
私はsnapkitでチャットウィンドウTextField UIを作成しています.キーボードがポップアップされるとこのエラーが発生します.
https://github.com/SnapKit/SnapKit/issues/295
https://stackoverflow.com/questions/43462122/update-constraint-does-not-work-on-uitableview-snapkit
このような良い答えはたくさんありますが、私は適用しません.
そして偶然不思議な...
inputTextFieldView.snp.makeConstraints {
$0.width.equalTo(self.view.frame.width)
$0.height.equalTo(60)
$0.bottom.equalTo(self.view.safeAreaLayoutGuide.snp.bottom)
$0.centerX.equalTo(self.view).offset(0)
}
これはキーボードに触れていないときのコードです. @objc func keyboardWillShow(noti: Notification) {
let notinfo = noti.userInfo!
let keyboardFrame = notinfo[UIResponder.keyboardFrameEndUserInfoKey] as! CGRect
let heiget = keyboardFrame.size.height - self.view.safeAreaInsets.bottom
let animateDuration = notinfo[UIResponder.keyboardAnimationDurationUserInfoKey] as! TimeInterval
UIView.animate(withDuration: animateDuration) {
self.inputTextFieldView.snp.updateConstraints() {
$0.bottom.equalTo(-heiget)
}
self.view.layoutIfNeeded()
}
}
キーボードが上昇したときに実行される関数.そのSafeAreLayoutGuideを使用すると、Constraintsの更新中にエラーが発生します.
inputTextFieldView.snp.makeConstraints {
$0.width.equalTo(self.view.frame.width)
$0.height.equalTo(60)
$0.bottom.equalTo(0)
$0.centerX.equalTo(self.view).offset(0)
}
このようにすれば愛楽は起こらない.safeAreaを使用する場合は、後でsafeArea用のビューを作成できます.
Snapkitを勉強するみたいRxはいつしますか.
Reference
この問題について(更新されたコンストレイントは、既存の一致コンストレイントを見つけて解決を更新できません.), 我々は、より多くの情報をここで見つけました https://velog.io/@kimdaehee0824/updated-constraint-could-not-find-existing-matching-constraint-to-update-해결하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol