键盘移动视图太小了

时间:2016-10-06 17:44:20

标签: ios swift

我做了简单的解决方案,按下文本字段,打开键盘并向上移动视图。但问题是,它正在移动它有点太高,并覆盖第一textField。我不想为此制作scrollView。还有其他解决方案吗?

像这样我按照上面描述的那样做:

NotificationCenter.default.addObserver(self, selector: #selector(RegisterViewController.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(RegisterViewController.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)

func keyboardWillShow(notification: NSNotification) {

        if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
            if self.view.frame.origin.y == 0{
                self.view.frame.origin.y -= keyboardSize.height
            }
        }

    }


    func keyboardWillHide(notification: NSNotification) {
        if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
            if self.view.frame.origin.y != 0{
                self.view.frame.origin.y += keyboardSize.height
            }
        }
    }

在这里你可以看到它的作用:

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

您有一些选择:例如:

  • 根据点击的texfield移动标签(第一个字段少,最后一个字段更多)
  • 更改您的界面,以便所有文本字段仅使用键盘启动时可用的空间

答案 1 :(得分:-1)

有许多第三方库可供使用,例如https://github.com/hackiftekhar/IQKeyboardManagerhttps://github.com/michaeltyson/TPKeyboardAvoiding

您可以使用其中任何一种,并且忘记了自己的键盘处理。这些很酷的库可以处理大部分事情。