小编bad*_*man的帖子

出现键盘时更改约束-Swift

键盘出现时,我的UIView不能正常移动。我用来输入文本的UIView中有一个UITextView。如果我选择TextView输入文本,则会出现键盘,但UIView不会第一次移动。如果我点击背景并使键盘消失,然后再次点击TextView,则UIView会正确向上移动。有人知道这里发生了什么吗?

class ChatViewController: UIViewController, CNContactPickerDelegate, UISearchBarDelegate, UITableViewDelegate, UITableViewDataSource, UIToolbarDelegate, UITextFieldDelegate, UITextViewDelegate {

@IBOutlet weak var composeTextView: UITextView!

@IBOutlet weak var composeViewBottomConstraint: NSLayoutConstraint!

override func viewDidLoad() {
    super.viewDidLoad()

    composeTextView.delegate = self

}

func textViewDidBeginEditing(_ textView: UITextView) {

    UIView.animate(withDuration: 0.5){
        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow), name: .UIKeyboardWillShow, object: nil)

    }

    self.view.layoutIfNeeded()


}

@objc func keyboardWillShow(notification: Notification) {
    let keyboardSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue

    let keyboardHeight = keyboardSize?.height

        if #available(iOS 11.0, *){

            self.composeViewBottomConstraint.constant = keyboardHeight! - view.safeAreaInsets.bottom
        }
        else {
            self.composeViewBottomConstraint.constant = view.safeAreaInsets.bottom
        }
        self.view.layoutIfNeeded() …
Run Code Online (Sandbox Code Playgroud)

constraints ios swift

2
推荐指数
1
解决办法
2372
查看次数

标签 统计

constraints ×1

ios ×1

swift ×1