【发布时间】:2020-12-18 12:13:01
【问题描述】:
我有一个登录屏幕。在中间(X:0, Y:0) 有一个stackView,其中有两个文本字段。当我想在文本字段中输入内容时,会显示键盘并提升 stackView,只要我输入一个字符,它就会到位并且什么都看不到。告诉我如何确保在文本字段中输入字符时stackView不会掉下!!
//MARK: Override
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
///NotificationCenter keyboard
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 viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
NotificationCenter.default.removeObserver(self)
}
// Extension keyboard SHOW/HIDE
extension LoginViewController {
@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.conteinerStackView.frame.origin.y = keyboardHeight - 100
self.view.layoutIfNeeded()
}
}
@objc func keyboardWillHide() {
self.view.layoutIfNeeded()
UIView.animate(withDuration: 1) {
self.conteinerStackView.frame.origin.y = 0
self.view.layoutIfNeeded()
}
}
}
【问题讨论】:
-
你能发一张图片来证明这个问题吗?
标签: ios swift iphone view stack