Переместить вид при появлении клавиатуры - PullRequest
1 голос
/ 16 июня 2020

На экране у меня несколько тестовых полей для регистрации. Чтобы клавиатура не перекрывала поля, меняю ограничение. Но возникла проблема. Эти поля появляются на больших экранах, где это не требуется. Как мне избавиться от него и изменить ограничение, когда это действительно необходимо.

ViewController.swift

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        NotificationCenter.default.removeObserver(self)
    }
    @objc func keyboardWillShow(notification: NSNotification) {
        var keyboardHeight = CGFloat(0.0)

        if let keyboardFrame: NSValue = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue {
            let keyboardRectangle = keyboardFrame.cgRectValue
            keyboardHeight = keyboardRectangle.height
        }

        UIView.animate(withDuration: 3) {

            self.viewBottomConstraint.constant = keyboardHeight + 5
            self.topIconConstraint.constant = 40
            self.view.layoutIfNeeded()
        }
    }

    @objc func keyboardWillHide() {
        self.view.layoutIfNeeded()
        UIView.animate(withDuration: 1) {
            self.viewBottomConstraint.constant = 250
             self.topIconConstraint.constant = 150
            self.view.layoutIfNeeded()
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...