我有一个包含文本字段的视图。每当用户点击该texfield时,键盘就会出现,然后我向上移动一点点。一切都很好,直到我提出一个新的viewcontroller然后解雇它,在我解除新的viewcontroller后,我在我的旧viewcontroller上得到了一个奇怪的行为,有点像这样:
在解除新的视图控制器后我显示键盘之前就像弹跳一样,这会影响我隐藏键盘的时候,我的视野会低于它的原始位置:这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil)
}
func keyboardWillShow(sender: NSNotification) {
self.view.frame.origin.y -= 100
}
func keyboardWillHide(sender: NSNotification) {
self.view.frame.origin.y += 100
}
我该如何解决这个问题?
答案 0 :(得分:0)
你需要尝试这样的事情,你不能总是认为键盘将是那么高,特别是随着第三方键盘的出现。
在您的keyboardWillHide
和keyboardWillShow
中,您需要获得键盘高度:
if let keyboardSize = (sender.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
self.view.frame.origin.y += keyboardSize
}